{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "8068f820",
   "metadata": {},
   "source": [
    "# FastAi Example"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b84d3f83",
   "metadata": {},
   "source": [
    "You can install fastai using pip:\n",
    "`pip install fastai`\n",
    "\n",
    "Here is the mnist example using fastai.learner.Learner to train the model \n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "a1920bc7",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np \n",
    "import pandas as pd \n",
    "from matplotlib import pyplot as plt\n",
    "import torch\n",
    "from torch import nn\n",
    "import torch.nn.functional as F\n",
    "from torch.utils.data import Dataset,DataLoader\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e73ca619",
   "metadata": {},
   "source": [
    "### 1, prepare data "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "25ab4939",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torchvision \n",
    "from torchvision import transforms\n",
    "\n",
    "transform = transforms.Compose([transforms.ToTensor()])\n",
    "ds_train = torchvision.datasets.MNIST(root=\"mnist/\",train=True,download=True,transform=transform)\n",
    "ds_val = torchvision.datasets.MNIST(root=\"mnist/\",train=False,download=True,transform=transform)\n",
    "dl_train =  torch.utils.data.DataLoader(ds_train, batch_size=128, shuffle=True, num_workers=2)\n",
    "dl_val =  torch.utils.data.DataLoader(ds_val, batch_size=128, shuffle=False, num_workers=2)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "85a45abd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([128, 1, 28, 28])\n",
      "torch.Size([128])\n"
     ]
    }
   ],
   "source": [
    "for features,labels in dl_train:\n",
    "    break\n",
    "print(features.shape)\n",
    "print(labels.shape)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "c484c0b4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"463.452941pt\" height=\"476.538125pt\" viewBox=\"0 0 463.452941 476.538125\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2023-03-04T16:11:06.665167</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.6.2, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 476.538125 \n",
       "L 463.452941 476.538125 \n",
       "L 463.452941 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 10.7 152.765184 \n",
       "L 141.147059 152.765184 \n",
       "L 141.147059 22.318125 \n",
       "L 10.7 22.318125 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p86823b3379)\">\n",
       "    <image xlink:href=\"data:image/png;base64,\n",
       "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\" id=\"image4ed549878c\" transform=\"scale(1 -1) translate(0 -131.04)\" x=\"10.7\" y=\"-21.725184\" width=\"131.04\" height=\"131.04\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_1\"/>\n",
       "   <g id=\"matplotlib.axis_2\"/>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 10.7 152.765184 \n",
       "L 10.7 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 141.147059 152.765184 \n",
       "L 141.147059 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 10.7 152.765184 \n",
       "L 141.147059 152.765184 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 10.7 22.318125 \n",
       "L 141.147059 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- label = 5 -->\n",
       "    <g transform=\"translate(48.752904 16.318125) scale(0.12 -0.12)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-6c\" d=\"M 603 4863 \n",
       "L 1178 4863 \n",
       "L 1178 0 \n",
       "L 603 0 \n",
       "L 603 4863 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-61\" d=\"M 2194 1759 \n",
       "Q 1497 1759 1228 1600 \n",
       "Q 959 1441 959 1056 \n",
       "Q 959 750 1161 570 \n",
       "Q 1363 391 1709 391 \n",
       "Q 2188 391 2477 730 \n",
       "Q 2766 1069 2766 1631 \n",
       "L 2766 1759 \n",
       "L 2194 1759 \n",
       "z\n",
       "M 3341 1997 \n",
       "L 3341 0 \n",
       "L 2766 0 \n",
       "L 2766 531 \n",
       "Q 2569 213 2275 61 \n",
       "Q 1981 -91 1556 -91 \n",
       "Q 1019 -91 701 211 \n",
       "Q 384 513 384 1019 \n",
       "Q 384 1609 779 1909 \n",
       "Q 1175 2209 1959 2209 \n",
       "L 2766 2209 \n",
       "L 2766 2266 \n",
       "Q 2766 2663 2505 2880 \n",
       "Q 2244 3097 1772 3097 \n",
       "Q 1472 3097 1187 3025 \n",
       "Q 903 2953 641 2809 \n",
       "L 641 3341 \n",
       "Q 956 3463 1253 3523 \n",
       "Q 1550 3584 1831 3584 \n",
       "Q 2591 3584 2966 3190 \n",
       "Q 3341 2797 3341 1997 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-62\" d=\"M 3116 1747 \n",
       "Q 3116 2381 2855 2742 \n",
       "Q 2594 3103 2138 3103 \n",
       "Q 1681 3103 1420 2742 \n",
       "Q 1159 2381 1159 1747 \n",
       "Q 1159 1113 1420 752 \n",
       "Q 1681 391 2138 391 \n",
       "Q 2594 391 2855 752 \n",
       "Q 3116 1113 3116 1747 \n",
       "z\n",
       "M 1159 2969 \n",
       "Q 1341 3281 1617 3432 \n",
       "Q 1894 3584 2278 3584 \n",
       "Q 2916 3584 3314 3078 \n",
       "Q 3713 2572 3713 1747 \n",
       "Q 3713 922 3314 415 \n",
       "Q 2916 -91 2278 -91 \n",
       "Q 1894 -91 1617 61 \n",
       "Q 1341 213 1159 525 \n",
       "L 1159 0 \n",
       "L 581 0 \n",
       "L 581 4863 \n",
       "L 1159 4863 \n",
       "L 1159 2969 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-65\" d=\"M 3597 1894 \n",
       "L 3597 1613 \n",
       "L 953 1613 \n",
       "Q 991 1019 1311 708 \n",
       "Q 1631 397 2203 397 \n",
       "Q 2534 397 2845 478 \n",
       "Q 3156 559 3463 722 \n",
       "L 3463 178 \n",
       "Q 3153 47 2828 -22 \n",
       "Q 2503 -91 2169 -91 \n",
       "Q 1331 -91 842 396 \n",
       "Q 353 884 353 1716 \n",
       "Q 353 2575 817 3079 \n",
       "Q 1281 3584 2069 3584 \n",
       "Q 2775 3584 3186 3129 \n",
       "Q 3597 2675 3597 1894 \n",
       "z\n",
       "M 3022 2063 \n",
       "Q 3016 2534 2758 2815 \n",
       "Q 2500 3097 2075 3097 \n",
       "Q 1594 3097 1305 2825 \n",
       "Q 1016 2553 972 2059 \n",
       "L 3022 2063 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-20\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-3d\" d=\"M 678 2906 \n",
       "L 4684 2906 \n",
       "L 4684 2381 \n",
       "L 678 2381 \n",
       "L 678 2906 \n",
       "z\n",
       "M 678 1631 \n",
       "L 4684 1631 \n",
       "L 4684 1100 \n",
       "L 678 1100 \n",
       "L 678 1631 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-35\" d=\"M 691 4666 \n",
       "L 3169 4666 \n",
       "L 3169 4134 \n",
       "L 1269 4134 \n",
       "L 1269 2991 \n",
       "Q 1406 3038 1543 3061 \n",
       "Q 1681 3084 1819 3084 \n",
       "Q 2600 3084 3056 2656 \n",
       "Q 3513 2228 3513 1497 \n",
       "Q 3513 744 3044 326 \n",
       "Q 2575 -91 1722 -91 \n",
       "Q 1428 -91 1123 -41 \n",
       "Q 819 9 494 109 \n",
       "L 494 744 \n",
       "Q 775 591 1075 516 \n",
       "Q 1375 441 1709 441 \n",
       "Q 2250 441 2565 725 \n",
       "Q 2881 1009 2881 1497 \n",
       "Q 2881 1984 2565 2268 \n",
       "Q 2250 2553 1709 2553 \n",
       "Q 1456 2553 1204 2497 \n",
       "Q 953 2441 691 2322 \n",
       "L 691 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-61\" x=\"27.783203\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-62\" x=\"89.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-65\" x=\"152.539062\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\" x=\"214.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"241.845703\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-3d\" x=\"273.632812\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"357.421875\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-35\" x=\"389.208984\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_2\">\n",
       "   <g id=\"patch_7\">\n",
       "    <path d=\"M 168.252941 152.765184 \n",
       "L 298.7 152.765184 \n",
       "L 298.7 22.318125 \n",
       "L 168.252941 22.318125 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p8e595f24d9)\">\n",
       "    <image xlink:href=\"data:image/png;base64,\n",
       "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\" id=\"image8a516cabac\" transform=\"scale(1 -1) translate(0 -131.04)\" x=\"168.252941\" y=\"-21.725184\" width=\"131.04\" height=\"131.04\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_3\"/>\n",
       "   <g id=\"matplotlib.axis_4\"/>\n",
       "   <g id=\"patch_8\">\n",
       "    <path d=\"M 168.252941 152.765184 \n",
       "L 168.252941 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_9\">\n",
       "    <path d=\"M 298.7 152.765184 \n",
       "L 298.7 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_10\">\n",
       "    <path d=\"M 168.252941 152.765184 \n",
       "L 298.7 152.765184 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_11\">\n",
       "    <path d=\"M 168.252941 22.318125 \n",
       "L 298.7 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!-- label = 0 -->\n",
       "    <g transform=\"translate(206.305846 16.318125) scale(0.12 -0.12)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-30\" d=\"M 2034 4250 \n",
       "Q 1547 4250 1301 3770 \n",
       "Q 1056 3291 1056 2328 \n",
       "Q 1056 1369 1301 889 \n",
       "Q 1547 409 2034 409 \n",
       "Q 2525 409 2770 889 \n",
       "Q 3016 1369 3016 2328 \n",
       "Q 3016 3291 2770 3770 \n",
       "Q 2525 4250 2034 4250 \n",
       "z\n",
       "M 2034 4750 \n",
       "Q 2819 4750 3233 4129 \n",
       "Q 3647 3509 3647 2328 \n",
       "Q 3647 1150 3233 529 \n",
       "Q 2819 -91 2034 -91 \n",
       "Q 1250 -91 836 529 \n",
       "Q 422 1150 422 2328 \n",
       "Q 422 3509 836 4129 \n",
       "Q 1250 4750 2034 4750 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-61\" x=\"27.783203\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-62\" x=\"89.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-65\" x=\"152.539062\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\" x=\"214.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"241.845703\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-3d\" x=\"273.632812\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"357.421875\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-30\" x=\"389.208984\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_3\">\n",
       "   <g id=\"patch_12\">\n",
       "    <path d=\"M 325.805882 152.765184 \n",
       "L 456.252941 152.765184 \n",
       "L 456.252941 22.318125 \n",
       "L 325.805882 22.318125 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p5cf87445b8)\">\n",
       "    <image xlink:href=\"data:image/png;base64,\n",
       "iVBORw0KGgoAAAANSUhEUgAAALYAAAC2CAYAAAB08HcEAAAFJUlEQVR4nO3dXWjVZRzA8eec2eYWxXRT0pSygSzoxaARWVHC6Voi88KLIJWiukkKupIuirr1Yjd2GXWVwUpBiQzniqhVM2T0gpUvFW4rKUEXbmenq7p6ftJ2zvmf+d33c/n8eTy/ydfn4uHsb6lS2lZLEky51QNIzWDYQjJsIRm2kAxbSIYtJMMWkmELybCFZNhCMmwhGbaQDFtIhi0kwxaSYQvJsIVk2EIybCEta/UAWpjzezaHz75+aTC73j+8M9xz244T9Y60qHhiC8mwhWTYQjJsIRm2kLwVuUZ1VKbCZ20lzyv/BoRk2EIybCEZtpAMW0iGLSSv+4CqtblWj9BynthCMmwhGbaQDFtIhi0kb0WWkK7RrlaPUBhPbCEZtpAMW0iGLSTDFpJhC8nrPqDwdx6X0HejPLGFZNhCMmwhGbaQDFtI3ooARb8atuKHmYInaR1PbCEZtpAMW0iGLSTDFpJhC8mwhWTYQjJsIRm2kAxbSIYtJL8EtYSc2VoKn208XOAgBfDEFpJhC8mwhWTYQjJsIRm2kAq77vv5jfuz6+sHfi1qhNDU4XXZ9Z7x+HcE24+MNmuc/+Xy8VXxw0355de2vBdueSutr2+gRcYTW0iGLSTDFpJhC8mwhdTQW5FTb98TPvtuy2B2/duZ+Obhg4ub6h3pPy/3jIfPyrfnvxw0XbsS7vmtWs2uD049Eu45+M3d2fXusfZwz5oPJ7Lr6/Z9Fe4ZfaaWXd96fXwD5a2IdA0wbCEZtpAMW0iGLSTDFlJDr/s6lsdXd+WUv1J76vU94Z7eNz+re6Z/DT+0O3xWa8vPdq7SEe65sjb/s5bb89eAKaX0UWVfdv26R8Mt6fyL+Rn2/vRYuGdV23T+c0rxz1MauDO7Xhs9GQ+3iHliC8mwhWTYQjJsIRm2kFr+JqjOC8X8z/XlkbF577n1WGNneC49mF1v6+0J90w8vjG7vnL7L+GeleX8ebUstcWfc98N2fXVrf0NuAXzxBaSYQvJsIVk2EIybCEZtpBaft03eW/8b2vDgQIHaaHq73+Ez3r3B18E2x//eQ8P7cqujw28E+559vmh7PrQu3eEe6oTk/EQLeaJLSTDFpJhC8mwhWTYQmrorcjsqfwXaVJKKeVfj52W9//ZyBGUUlr/wqXs+qcfx+fYrhvzX6oa6t4cf5C3IlKxDFtIhi0kwxaSYQvJsIXU0Ou+Ww7l30CUUkqTOy438qN0FbOnz2bXD1wYCPc8sObz7Pr0hhXhnvbv5zdXkTyxhWTYQjJsIRm2kAxbSA29FSl/ciJ8NvL3zY38KC3A6UvxG6ci5yrx26P6jtQzTXN5YgvJsIVk2EIybCEZtpAMW0iFvQlqptbyl04tebO7u+KHx/LLnX0XmzJLs3liC8mwhWTYQjJsIRm2kAq7qnjl0BPZ9a6+v4oaYcmr/ngmfNY/vDO7/vRdI+GeowP5t0TVRk/Ob7Am8MQWkmELybCFZNhCMmwhGbaQCrvuW3t8Lrs+Pd5d1Aiaq4aPSmc7s+tHb+qP/7xard6JmsYTW0iGLSTDFpJhC8mwhVTYrUjn+1/k14saQFe1+sv8rdXe7QfDPa+mJ5s1Tt08sYVk2EIybCEZtpAMW0iGLaRSpbRt8X6TRVogT2whGbaQDFtIhi0kwxaSYQvJsIVk2EIybCEZtpAMW0iGLSTDFpJhC8mwhWTYQjJsIRm2kAxbSIYtJMMWkmELybCFZNhCMmwhGbaQDFtIhi0kwxaSYQvJsIX0D+IxqjxHZ+heAAAAAElFTkSuQmCC\" id=\"image735becd29e\" transform=\"scale(1 -1) translate(0 -131.04)\" x=\"325.805882\" y=\"-21.725184\" width=\"131.04\" height=\"131.04\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_5\"/>\n",
       "   <g id=\"matplotlib.axis_6\"/>\n",
       "   <g id=\"patch_13\">\n",
       "    <path d=\"M 325.805882 152.765184 \n",
       "L 325.805882 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_14\">\n",
       "    <path d=\"M 456.252941 152.765184 \n",
       "L 456.252941 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_15\">\n",
       "    <path d=\"M 325.805882 152.765184 \n",
       "L 456.252941 152.765184 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_16\">\n",
       "    <path d=\"M 325.805882 22.318125 \n",
       "L 456.252941 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- label = 4 -->\n",
       "    <g transform=\"translate(363.858787 16.318125) scale(0.12 -0.12)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-34\" d=\"M 2419 4116 \n",
       "L 825 1625 \n",
       "L 2419 1625 \n",
       "L 2419 4116 \n",
       "z\n",
       "M 2253 4666 \n",
       "L 3047 4666 \n",
       "L 3047 1625 \n",
       "L 3713 1625 \n",
       "L 3713 1100 \n",
       "L 3047 1100 \n",
       "L 3047 0 \n",
       "L 2419 0 \n",
       "L 2419 1100 \n",
       "L 313 1100 \n",
       "L 313 1709 \n",
       "L 2253 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-61\" x=\"27.783203\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-62\" x=\"89.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-65\" x=\"152.539062\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\" x=\"214.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"241.845703\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-3d\" x=\"273.632812\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"357.421875\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" x=\"389.208984\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_4\">\n",
       "   <g id=\"patch_17\">\n",
       "    <path d=\"M 10.7 309.301654 \n",
       "L 141.147059 309.301654 \n",
       "L 141.147059 178.854596 \n",
       "L 10.7 178.854596 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p17fe72808c)\">\n",
       "    <image xlink:href=\"data:image/png;base64,\n",
       "iVBORw0KGgoAAAANSUhEUgAAALYAAAC2CAYAAAB08HcEAAAEwElEQVR4nO3dzYvVVRzH8d84Tmi6KUSmmtEiUEGRAqOUQiOlaFEho1Q7a9WjPUKBi1YtInqiwCQIQpMywdoFQUQRWVFgPpBY2KhUiBrhhMw4M/0D51y4cp1xPvN6Lb+HM7+7eHMWh/u707W2a2C8gTAzJvsDwMUgbCIJm0jCJpKwiSRsIgmbSMImkrCJJGwiCZtIwiaSsIkkbCIJm0jCJpKwiSRsIgmbSDMn+wN02szrFhbnvTtPVfds7f+qOP/47Pzqng8W97f3wZhQTmwiCZtIwiaSsIkkbCLF3Yr8e0Nvcb6rb1eLXd0X58MwaZzYRBI2kYRNJGETSdhEEjaRhE0kYRNJ2EQSNpGETSRhEynuS1CzTg8X59+cm1Pdc/vsc8X5nZcPVvds2ba+OF/y9MHqnrGhoeoaneXEJpKwiSRsIgmbSMImkrCJ1LW2a2B8sj/ERDj2ybLq2sFV24vzkfHRtp9z77oHqmujBw+3/fe4ME5sIgmbSMImkrCJJGwixX0JqqZ/YH91beRE+fbjQm5F/lwzr7o2363IhHFiE0nYRBI2kYRNJGETSdhEmjbXfa38PDxWnC/raf9vrdz0U3Xt6M4rivPRM2fafxAtObGJJGwiCZtIwiaSsIk0bV4Na2Vs9Y3F+cPb9lT33DPn77afs27//cX53Lt+b/tv0ZoTm0jCJpKwiSRsIgmbSMImkuu+Fn7bUb4GbJqm2bf63Y49Z/19D1XXxn+sv6tJnRObSMImkrCJJGwiCZtIXg1rYdHL/1XXetZ0d+w5gy/U1/oHOvaYacWJTSRhE0nYRBI2kYRNJGETyXVfC6MHfq2urdryeHG+46VXq3v6uss/LbWy72h1z1/XLijOzx8drO7BiU0oYRNJ2EQSNpGETSSvhnXY8RdXVdd+eOyN4rynq/6Fqg1H7i7OhwfKv+ndNE0zevJkdW26cGITSdhEEjaRhE0kYRNJ2ERy3ddh3UsXV9du+rD8q05b5u2r7hkZHy3Ol3/0ZHXP9c9+V12bLpzYRBI2kYRNJGETSdhEcisygWb2XVOc79n7WXVP7Vbk0Ej9OZufe6I4n7N7b31TGCc2kYRNJGETSdhEEjaRhE0kvwQ1gc4fP1GcL/16U3XPgdveL86XX1Z/zoJnDhfnp3bX96RxYhNJ2EQSNpGETSRhE8mtyCXgqu2zqmtfriiv3TprqLrnvYWfF+crNz9V3dP75rfVtanIiU0kYRNJ2EQSNpGETSRhE8k7j5e4sxtuLs7feeWt6p5FPV3F+dZ/llT3fLFxRXE+/kf5i1tN0zRjQ/Urx8nmxCaSsIkkbCIJm0jCJpJbkSnqyGu3VNd+2Vi/Mamp/Uu+Ox59pLpn9qfft/2cieLEJpKwiSRsIgmbSMImkrCJ5J3HKWrusfqZdHpsuDi/ckaLn48K48QmkrCJJGwiCZtIwiaSW5Epqvf1+i83rbn6+eL80INvV/fUvgTVlN8yu+Q5sYkkbCIJm0jCJpKwiSRsInnnkUhObCIJm0jCJpKwiSRsIgmbSMImkrCJJGwiCZtIwiaSsIkkbCIJm0jCJpKwiSRsIgmbSMImkrCJJGwiCZtIwiaSsIkkbCIJm0jCJpKwiSRsIgmbSMIm0v8oMaZNofO8yAAAAABJRU5ErkJggg==\" id=\"image467946828d\" transform=\"scale(1 -1) translate(0 -131.04)\" x=\"10.7\" y=\"-178.261654\" width=\"131.04\" height=\"131.04\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_7\"/>\n",
       "   <g id=\"matplotlib.axis_8\"/>\n",
       "   <g id=\"patch_18\">\n",
       "    <path d=\"M 10.7 309.301654 \n",
       "L 10.7 178.854596 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_19\">\n",
       "    <path d=\"M 141.147059 309.301654 \n",
       "L 141.147059 178.854596 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_20\">\n",
       "    <path d=\"M 10.7 309.301654 \n",
       "L 141.147059 309.301654 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_21\">\n",
       "    <path d=\"M 10.7 178.854596 \n",
       "L 141.147059 178.854596 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!-- label = 1 -->\n",
       "    <g transform=\"translate(48.752904 172.854596) scale(0.12 -0.12)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-31\" d=\"M 794 531 \n",
       "L 1825 531 \n",
       "L 1825 4091 \n",
       "L 703 3866 \n",
       "L 703 4441 \n",
       "L 1819 4666 \n",
       "L 2450 4666 \n",
       "L 2450 531 \n",
       "L 3481 531 \n",
       "L 3481 0 \n",
       "L 794 0 \n",
       "L 794 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-61\" x=\"27.783203\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-62\" x=\"89.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-65\" x=\"152.539062\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\" x=\"214.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"241.845703\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-3d\" x=\"273.632812\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"357.421875\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-31\" x=\"389.208984\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_5\">\n",
       "   <g id=\"patch_22\">\n",
       "    <path d=\"M 168.252941 309.301654 \n",
       "L 298.7 309.301654 \n",
       "L 298.7 178.854596 \n",
       "L 168.252941 178.854596 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#pd49c230d2d)\">\n",
       "    <image xlink:href=\"data:image/png;base64,\n",
       "iVBORw0KGgoAAAANSUhEUgAAALYAAAC2CAYAAAB08HcEAAAFwklEQVR4nO3d32vVdRzH8c/Z2c7mGWvNRKHyR7HSwGzFwFqIJEe9KSOdOIvKIdQiFQcSSl01u8oRJsWESBGCoCQSurBf4JVzmZlQW60fmz9YosbWwv3e6R94v7/wXcft7HWej8v3l8/OB/f0c/HhnLNEJlGfDYCYopneAHArEDYkETYkETYkETYkETYkFc/0BhBCct4d7rOu1sXmvDNz2F2zYdN2+0H7hVj7ms04sSGJsCGJsCGJsCGJsCGJW5Fp5N1+pI77v4bOavv2Y/WPW901c7t6zflExN7UcGJDEmFDEmFDEmFDEmFDEmFDEtd90+jK80vNeUf1QXdNY886c175ZtpdM9E/EG9jgjixIYmwIYmwIYmwIYmwIYlbkWnU/PKnsdf0tVSb81T7d/93O9I4sSGJsCGJsCGJsCGJsCGJsCGJ674cyz5e4z7bdtt5cz6W9c+X9E995nw8zqYKECc2JBE2JBE2JBE2JBE2JHErkmNXVvsf2RrL2t/FNBkmb9V2ChYnNiQRNiQRNiQRNiQRNiQRNiRx3ZdjlX9wdZcPOLEhibAhibAhibAhibAhiVuRHKv4uN1/2Dp9+yh0nNiQRNiQRNiQRNiQRNiQRNiQxHVfjg02PBrx9Ptp20eh48SGJMKGJMKGJMKGJMKGJG5Fcqx4yP9oWEkiac7Hsv7P+3PbInO+sOVyrH0VGk5sSCJsSCJsSCJsSCJsSCJsSJqV132j62vdZwfa3jfnK1L2VVsIIRz75y5zvv/UBnfN/UeHzXnFhavumsaLq8x528Jv3TVDS0bdZ/BxYkMSYUMSYUMSYUMSYUNSIpOoj3gLzsxKLphvzvee/tJds7J0zJwXRfwfzuWfo/t6qMJ9lgz2P/UTc/5115wZKTHnb91bE2tfhYYTG5IIG5IIG5IIG5IIG5IIG5Ly+k1QibJSc+5d6UV5OtPgv85N+w1N3U13u2vWZc6Z8+b537hrFhXPMedRl421KftNUP0vPOauuf3Y6YifWBg4sSGJsCGJsCGJsCGJsCEpr29FssMj5vzsiP8xr9rSCXM+9K7/EavU2kvm/J599jyEELr32fMdNS+5a5Z/2GnO9y/ocNckEwlznt1y3V9zotKcT/QPuGvUcGJDEmFDEmFDEmFDEmFDEmFDUl5/5tHze6v/J+c6G94z5wOT9hudQghhc9ez5rxs49/umsnBQfeZp6i83JzfqF/hrvm85W1zPi9pv6EqhBCWffKqOa/e3R6xOy2c2JBE2JBE2JBE2JBE2JA0K29FonQfWmnOf9lof292CP43QT3wVZO7ZtmeHnM+cf2Gv7kpeObna+a8sdJ+/SirXt/lPqs6qvVxMk5sSCJsSCJsSCJsSCJsSCJsSJK77vP81VznPuvYczD2z9v821PmfHyT/y1VU7kKvLrT3veZvfH3fPKm/VnIEEI4vGaNOR+/dDn26+QDTmxIImxIImxIImxIImxIKphbkURJyn02nHnInB9pe8ddc2ex/d3d23vXumt6Dyw15+VfnHfXFKXT9vyzMnfN8ftO2GsizrHlR3aY8yVvzM43R3FiQxJhQxJhQxJhQxJhQxJhQ1LBXPdNxbUm/0/OHXrN/sYp74vnQ/Cv217sybhrHq68aM53VXW5a+K+fggh1P2w1ZzPffLX2K+TDzixIYmwIYmwIYmwIYmwIYlbkSkaXV9rznufs79VKoQQXnnklDnfXRX/5uHBD3a6z9J99q+0v87+84IhhLD4I/uMS508G29jeYITG5IIG5IIG5IIG5IIG5IIG5K47oMkTmxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxIImxI+g8q8N7IPYABNwAAAABJRU5ErkJggg==\" id=\"image915b03a1a1\" transform=\"scale(1 -1) translate(0 -131.04)\" x=\"168.252941\" y=\"-178.261654\" width=\"131.04\" height=\"131.04\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_9\"/>\n",
       "   <g id=\"matplotlib.axis_10\"/>\n",
       "   <g id=\"patch_23\">\n",
       "    <path d=\"M 168.252941 309.301654 \n",
       "L 168.252941 178.854596 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_24\">\n",
       "    <path d=\"M 298.7 309.301654 \n",
       "L 298.7 178.854596 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_25\">\n",
       "    <path d=\"M 168.252941 309.301654 \n",
       "L 298.7 309.301654 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_26\">\n",
       "    <path d=\"M 168.252941 178.854596 \n",
       "L 298.7 178.854596 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- label = 9 -->\n",
       "    <g transform=\"translate(206.305846 172.854596) scale(0.12 -0.12)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-39\" d=\"M 703 97 \n",
       "L 703 672 \n",
       "Q 941 559 1184 500 \n",
       "Q 1428 441 1663 441 \n",
       "Q 2288 441 2617 861 \n",
       "Q 2947 1281 2994 2138 \n",
       "Q 2813 1869 2534 1725 \n",
       "Q 2256 1581 1919 1581 \n",
       "Q 1219 1581 811 2004 \n",
       "Q 403 2428 403 3163 \n",
       "Q 403 3881 828 4315 \n",
       "Q 1253 4750 1959 4750 \n",
       "Q 2769 4750 3195 4129 \n",
       "Q 3622 3509 3622 2328 \n",
       "Q 3622 1225 3098 567 \n",
       "Q 2575 -91 1691 -91 \n",
       "Q 1453 -91 1209 -44 \n",
       "Q 966 3 703 97 \n",
       "z\n",
       "M 1959 2075 \n",
       "Q 2384 2075 2632 2365 \n",
       "Q 2881 2656 2881 3163 \n",
       "Q 2881 3666 2632 3958 \n",
       "Q 2384 4250 1959 4250 \n",
       "Q 1534 4250 1286 3958 \n",
       "Q 1038 3666 1038 3163 \n",
       "Q 1038 2656 1286 2365 \n",
       "Q 1534 2075 1959 2075 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-61\" x=\"27.783203\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-62\" x=\"89.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-65\" x=\"152.539062\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\" x=\"214.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"241.845703\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-3d\" x=\"273.632812\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"357.421875\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-39\" x=\"389.208984\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_6\">\n",
       "   <g id=\"patch_27\">\n",
       "    <path d=\"M 325.805882 309.301654 \n",
       "L 456.252941 309.301654 \n",
       "L 456.252941 178.854596 \n",
       "L 325.805882 178.854596 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#pef0e9d1c3c)\">\n",
       "    <image xlink:href=\"data:image/png;base64,\n",
       "iVBORw0KGgoAAAANSUhEUgAAALYAAAC2CAYAAAB08HcEAAAGc0lEQVR4nO3dbWiVdRjH8fvsnNOm2Uqnm4+0lo7FFNEwyUklWb0xFTeSyiADsdICWQojEEyQepOkJaYglpYlamorEAmFIDFLGWluugrnA85HFJ2bOw+9iN5d14F7Ts/Zb9/Py/+f65wb/XKDf+77GJkaqUkHgJi8bF8AcDcQNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiQRNiTFsn0B0aIB7t65VyvM9Wtjb7szsYtxc7187Vl3JnX+gr3e3u7OILdxx4YkwoYkwoYkwoYkwoakrJ+KTNp3zt1bXLSn+77oNX9rWuMsc73lwHB3pmzbNXM9fazZnUl3+qc56F7csSGJsCGJsCGJsCGJsCGJsCEp68d9T/VrDD1zJdnh7q29OtFcH3bfVXemvmKHvWE/g/WfufZy5dfvuiMj6w6Z6+lEIsMXoSu4Y0MSYUMSYUMSYUMSYUNSZGqkJp3NCzhTN8ndO7zwE3P9XMI/Fan+cLG5PmTnP+7MlSml5np6ziV3Ztvojeb6oGi+O1P5zTvmevk6/3uSTf5DVffChbf9v5+SmlPhP7D2IXM5feRY+M/KgDs2JBE2JBE2JBE2JBE2JBE2JGX9uC8S85/Dalo93lxvnP6ZO3PGOQqc/vkSd6Z0w1/meuJ8qzvTOfVxc33cR0fcmRWDD5rrX1x/2J3Z9P6L5nrfHfZnBUEQRAcWmetXnxvlztycbb/D+d249e7M8Jh/tOmpv2lf27rystCflQl3bEgibEgibEgibEgibEjK+qlIJpF8+1/dTSvHujONM/wTE8+Mppnmet7Lne5MstX+Te3YCP/Xo8bubjHXlxX7JynXUvZvdE/cXuvODKmwr+2nMd+6M57ZzdPcvUurSs31gsv+n5snuv9w6JlMuGNDEmFDEmFDEmFDEmFDEmFDUk4f93nyCgrcvcuzx5nrP69YFfp7KrfY7ygGQRAM35c01/N/sH/tKQiCIDZksLletcd/H7O26Ki7152eXG7/glXJlw3uTKqt7W5dzh3jjg1JhA1JhA1JhA1JhA1JPfJUJBPvwanbT49xZ5as2WSuT+lzw51pdX6ju/F2f3dm6YkZ5vqWyo3uzNAuvH51sCNurs/b8pY7U7bcfhAr1W4/hJXruGNDEmFDEmFDEmFDEmFDEmFDktxxX1dECwvN9fYn/F9OitfZvxJVX7Er9PfHI1F3rzNtP2yVyb5b9kNiK6tr3JlUw/HQ35PLuGNDEmFDEmFDEmFDEmFDEqci3axlqf/fxyX6On/UkQwf6IzMeuGAO/JBsf162sIzz7gzp6vsh7rSiYQ7k8u4Y0MSYUMSYUMSYUMSYUMSYUMSx3091Kmt/jucDVUbQn/e8/MXmOsF9b+G/qxcwB0bkggbkggbkggbkggbkmLZvoB7JTryEXevaUGJuT5ir/9a1v3HzpvriVOnw11YF8UPPeBvVt2TS8hp3LEhibAhibAhibAhibAhibAhqdcc9wXr7Xf6giAI/ixfbW+85H/cthv2f2338Yln3ZmSJfbzZsnjJ/0vcvRt5dm1TLhjQxJhQxJhQxJhQxJhQ1KvORU5u7vU33wv/OfV9LMfgqoZ/5U7s3nHCHN9+8zJ7kyyqdlc7//H9QxXB+7YkETYkETYkETYkETYkETYkNRrjvuGbfYfNKqcMM9c/37SGnemLB4PfQ1zCu33IZM7f3FndlbbR4Gp0N/eu3DHhiTChiTChiTChiTChqRecyqSvHjR3Xv0FXtv0YT57kzzoqi5vn/yp+7MoGi+uT7XOS0JgiAo3vWjuf53R7E74/mtw77mIAiCPq23zPWe+gIad2xIImxIImxIImxIImxIImxI4r/D62Z5oyvcvZN1fcz1N8b4D0HVFh2942v632N733T3Rr3+e7d9Ty7gjg1JhA1JhA1JhA1JhA1JnIrkgGjRAHcv8mChud5SPdSdaR9o/5WOXNbgzqTa2ty9nog7NiQRNiQRNiQRNiQRNiQRNiRx3AdJ3LEhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAhibAh6V+VmiDtbcouGAAAAABJRU5ErkJggg==\" id=\"imaged2f57888fd\" transform=\"scale(1 -1) translate(0 -131.04)\" x=\"325.805882\" y=\"-178.261654\" width=\"131.04\" height=\"131.04\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_11\"/>\n",
       "   <g id=\"matplotlib.axis_12\"/>\n",
       "   <g id=\"patch_28\">\n",
       "    <path d=\"M 325.805882 309.301654 \n",
       "L 325.805882 178.854596 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_29\">\n",
       "    <path d=\"M 456.252941 309.301654 \n",
       "L 456.252941 178.854596 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_30\">\n",
       "    <path d=\"M 325.805882 309.301654 \n",
       "L 456.252941 309.301654 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_31\">\n",
       "    <path d=\"M 325.805882 178.854596 \n",
       "L 456.252941 178.854596 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!-- label = 2 -->\n",
       "    <g transform=\"translate(363.858787 172.854596) scale(0.12 -0.12)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531 \n",
       "L 3431 531 \n",
       "L 3431 0 \n",
       "L 469 0 \n",
       "L 469 531 \n",
       "Q 828 903 1448 1529 \n",
       "Q 2069 2156 2228 2338 \n",
       "Q 2531 2678 2651 2914 \n",
       "Q 2772 3150 2772 3378 \n",
       "Q 2772 3750 2511 3984 \n",
       "Q 2250 4219 1831 4219 \n",
       "Q 1534 4219 1204 4116 \n",
       "Q 875 4013 500 3803 \n",
       "L 500 4441 \n",
       "Q 881 4594 1212 4672 \n",
       "Q 1544 4750 1819 4750 \n",
       "Q 2544 4750 2975 4387 \n",
       "Q 3406 4025 3406 3419 \n",
       "Q 3406 3131 3298 2873 \n",
       "Q 3191 2616 2906 2266 \n",
       "Q 2828 2175 2409 1742 \n",
       "Q 1991 1309 1228 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-61\" x=\"27.783203\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-62\" x=\"89.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-65\" x=\"152.539062\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\" x=\"214.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"241.845703\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-3d\" x=\"273.632812\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"357.421875\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" x=\"389.208984\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_7\">\n",
       "   <g id=\"patch_32\">\n",
       "    <path d=\"M 10.7 465.838125 \n",
       "L 141.147059 465.838125 \n",
       "L 141.147059 335.391066 \n",
       "L 10.7 335.391066 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p0ff90ad2f4)\">\n",
       "    <image xlink:href=\"data:image/png;base64,\n",
       "iVBORw0KGgoAAAANSUhEUgAAALYAAAC2CAYAAAB08HcEAAADqElEQVR4nO3cMYtcVRiA4d2swUbZaBEEJRLQKRTBwkIEG1kQBLUwIIJFOouA/8DOUgQtRQsbQQtLsUshBAtTbEBjRLGwUZEVFBENu+sfuGdgxptdffd5ynOYO6d4+YrDzN3c2bxwuAExp477AHArCJskYZMkbJKETZKwSRI2ScImSdgkCZskYZMkbJKETZKwSRI2ScImSdgkCZskYZMkbJKETZKwSRI2ScImSdgk3XbcBzhJth5aTK7vfPTF8DOX7roxuX5qyUx67pmXJ9cPdq8vOV2LiU2SsEkSNknCJknYJAmbJNd9R+jXR++eXB9d6bE+E5skYZMkbJKETZKwSXIrcoRuv/jjcR/hxDCxSRI2ScImSdgkCZskYZPkuu8IXTx3ZXJ92f8XR05vbv3b46SZ2CQJmyRhkyRskoRNkluRmf3w2hPDvZfufGty/WCN7zn/6SvDvcXu+M1SJ4WJTZKwSRI2ScImSdgkCZsk130z+2vx53EfgQ0TmyhhkyRskoRNkrBJcisys6+fene4t86PnUYW7/w949N6TGyShE2SsEkSNknCJknYJLnum9myNzTdPFz9eU/uvji5vv35tdUfdoKY2CQJmyRhkyRskoRNkluRmd083B/uHazxM6jfrpydXN/e+HblZ50kJjZJwiZJ2CQJmyRhkyRskoRNkrBJEjZJwiZJ2CQJmyRhkyRskoRNkrBJEjZJwiZJ2CT5z+PM5n4TFOsxsUkSNknCJknYJAmbJLciM5v7TVCsx8QmSdgkCZskYZMkbJKETZLrvjV998bjg52rR3oOppnYJAmbJGGTJGyShE2SW5Elth44P9x7/dkPZ/uehz94dbi3+PiXyfXxT63Y2DCxiRI2ScImSdgkCZskYZPkum+Z3/8Ybn2y98jk+gt3XF75a85eHb8iav+rb1Z+HiY2UcImSdgkCZskYZPkVmSJ/Z9+Hu59dv2x6Y1zq9+KMD8TmyRhkyRskoRNkrBJEjZJrvuW2DqzPdy7/77p/yLy32BikyRskoRNkrBJEjZJbkWWufee4dbbi/cHO6dvzVlYiYlNkrBJEjZJwiZJ2CQJmyTXfUvsf3ljuPf85UuT698//d7wM2/uPTi5fuba3vgMwx2WMbFJEjZJwiZJ2CQJm6TNnc0L45czw/+UiU2SsEkSNknCJknYJAmbJGGTJGyShE2SsEkSNknCJknYJAmbJGGTJGyShE2SsEkSNknCJknYJAmbJGGTJGyShE3SP2WWVeoPDj7TAAAAAElFTkSuQmCC\" id=\"imagecfedc5777e\" transform=\"scale(1 -1) translate(0 -131.04)\" x=\"10.7\" y=\"-334.798125\" width=\"131.04\" height=\"131.04\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_13\"/>\n",
       "   <g id=\"matplotlib.axis_14\"/>\n",
       "   <g id=\"patch_33\">\n",
       "    <path d=\"M 10.7 465.838125 \n",
       "L 10.7 335.391066 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_34\">\n",
       "    <path d=\"M 141.147059 465.838125 \n",
       "L 141.147059 335.391066 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_35\">\n",
       "    <path d=\"M 10.7 465.838125 \n",
       "L 141.147059 465.838125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_36\">\n",
       "    <path d=\"M 10.7 335.391066 \n",
       "L 141.147059 335.391066 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- label = 1 -->\n",
       "    <g transform=\"translate(48.752904 329.391066) scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-6c\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-61\" x=\"27.783203\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-62\" x=\"89.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-65\" x=\"152.539062\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\" x=\"214.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"241.845703\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-3d\" x=\"273.632812\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"357.421875\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-31\" x=\"389.208984\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_8\">\n",
       "   <g id=\"patch_37\">\n",
       "    <path d=\"M 168.252941 465.838125 \n",
       "L 298.7 465.838125 \n",
       "L 298.7 335.391066 \n",
       "L 168.252941 335.391066 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p9a072a97f4)\">\n",
       "    <image xlink:href=\"data:image/png;base64,\n",
       "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\" id=\"image6cac163512\" transform=\"scale(1 -1) translate(0 -131.04)\" x=\"168.252941\" y=\"-334.798125\" width=\"131.04\" height=\"131.04\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_15\"/>\n",
       "   <g id=\"matplotlib.axis_16\"/>\n",
       "   <g id=\"patch_38\">\n",
       "    <path d=\"M 168.252941 465.838125 \n",
       "L 168.252941 335.391066 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_39\">\n",
       "    <path d=\"M 298.7 465.838125 \n",
       "L 298.7 335.391066 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_40\">\n",
       "    <path d=\"M 168.252941 465.838125 \n",
       "L 298.7 465.838125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_41\">\n",
       "    <path d=\"M 168.252941 335.391066 \n",
       "L 298.7 335.391066 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!-- label = 3 -->\n",
       "    <g transform=\"translate(206.305846 329.391066) scale(0.12 -0.12)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516 \n",
       "Q 3050 2419 3304 2112 \n",
       "Q 3559 1806 3559 1356 \n",
       "Q 3559 666 3084 287 \n",
       "Q 2609 -91 1734 -91 \n",
       "Q 1441 -91 1130 -33 \n",
       "Q 819 25 488 141 \n",
       "L 488 750 \n",
       "Q 750 597 1062 519 \n",
       "Q 1375 441 1716 441 \n",
       "Q 2309 441 2620 675 \n",
       "Q 2931 909 2931 1356 \n",
       "Q 2931 1769 2642 2001 \n",
       "Q 2353 2234 1838 2234 \n",
       "L 1294 2234 \n",
       "L 1294 2753 \n",
       "L 1863 2753 \n",
       "Q 2328 2753 2575 2939 \n",
       "Q 2822 3125 2822 3475 \n",
       "Q 2822 3834 2567 4026 \n",
       "Q 2313 4219 1838 4219 \n",
       "Q 1578 4219 1281 4162 \n",
       "Q 984 4106 628 3988 \n",
       "L 628 4550 \n",
       "Q 988 4650 1302 4700 \n",
       "Q 1616 4750 1894 4750 \n",
       "Q 2613 4750 3031 4423 \n",
       "Q 3450 4097 3450 3541 \n",
       "Q 3450 3153 3228 2886 \n",
       "Q 3006 2619 2597 2516 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-61\" x=\"27.783203\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-62\" x=\"89.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-65\" x=\"152.539062\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\" x=\"214.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"241.845703\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-3d\" x=\"273.632812\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"357.421875\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" x=\"389.208984\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_9\">\n",
       "   <g id=\"patch_42\">\n",
       "    <path d=\"M 325.805882 465.838125 \n",
       "L 456.252941 465.838125 \n",
       "L 456.252941 335.391066 \n",
       "L 325.805882 335.391066 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p9467f0ac03)\">\n",
       "    <image xlink:href=\"data:image/png;base64,\n",
       "iVBORw0KGgoAAAANSUhEUgAAALYAAAC2CAYAAAB08HcEAAADoElEQVR4nO3dsWvcZRjA8bumCa0KDoUKQlGoFgQpuFVwEQr+AQZcHFQQCq5u/gkOujjo4iw4ujhJcVNUXDIEpaijNQ5trbRJzlHQ36+Q6+Xu+ObzGd/jpS/hyzM8XNLp1en2bAIxp1b9ADgOwiZJ2CQJmyRhkyRskoRNkrBJEjZJwiZJ2CQJmyRhkyRskoRNkrBJEjZJwiZJ2CSdXvUDTpK9Ly4Nnm8/9cPoneuvvTB4frCzu5A3VZnYJAmbJGGTJGyShE2SrcgSvf/c54Pnz2/dGr3z1aNXjus5aSY2ScImSdgkCZskYZMkbJKs+5bozetvDZ7/9Mono3duXn5s8Pzctwt5UpaJTZKwSRI2ScImSdgk2YqsgZ/3745+du7Tb5b4kg4TmyRhkyRskoRNkrBJEjZJ1n1rYGMyG/3s1Nkzg+eHd+4c13MSTGyShE2SsEkSNknCJslWZInevfLl4PnTpx8ZvbP78fDf1H7m9fG/qY2JTZSwSRI2ScImSdgkCZsk674F+/ONF0c/u/b4R4PnfxyO/87jsx/cGzwf/9oUk4mJTZSwSRI2ScImSdgk2Yos2OEcP9GD2QN+Nezu/eE7R/9nThQTmyRhkyRskoRNkrBJEjZJ1n0LdvvC9Mh3bs3G7xzs7D7Mc04sE5skYZMkbJKETZKwSbIVWbALL/226icwMbGJEjZJwiZJ2CQJmyRhk2TdtwZe/f7t0c+enOws8SUdJjZJwiZJ2CQJmyRhk2QrsgZu743/d3jMx8QmSdgkCZskYZMkbJKETZKwSRI2ScImSdgkCZskYZPkS1Bz2nji/OD5hxc/e8CtM8fzGP7HxCZJ2CQJmyRhkyRskoRNknXfnKabm4PnlzaPvtI7e2PrYZ/Df5jYJAmbJGGTJGyShE2SrcgaOP/d/VU/IcfEJknYJAmbJGGTJGyShE2Sdd8SbUyH58jmX/tLfkmfiU2SsEkSNknCJknYJNmKLNHB7HDVTzgxTGyShE2SsEkSNknCJknYJFn3LdHXfw//uLd+3Ru94+tR8zGxSRI2ScImSdgkCZskW5E5Hfx+c/D85Xeujd65/N6Pg+f7N35ZyJv4l4lNkrBJEjZJwiZJ2CQJm6Tp1en2bNWPgEUzsUkSNknCJknYJAmbJGGTJGyShE2SsEkSNknCJknYJAmbJGGTJGyShE2SsEkSNknCJknYJAmbJGGTJGyShE2SsEkSNknCJknYJAmbJGGTJGyS/gFus1H2ieajhgAAAABJRU5ErkJggg==\" id=\"image41534f7df9\" transform=\"scale(1 -1) translate(0 -131.04)\" x=\"325.805882\" y=\"-334.798125\" width=\"131.04\" height=\"131.04\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_17\"/>\n",
       "   <g id=\"matplotlib.axis_18\"/>\n",
       "   <g id=\"patch_43\">\n",
       "    <path d=\"M 325.805882 465.838125 \n",
       "L 325.805882 335.391066 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_44\">\n",
       "    <path d=\"M 456.252941 465.838125 \n",
       "L 456.252941 335.391066 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_45\">\n",
       "    <path d=\"M 325.805882 465.838125 \n",
       "L 456.252941 465.838125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_46\">\n",
       "    <path d=\"M 325.805882 335.391066 \n",
       "L 456.252941 335.391066 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- label = 1 -->\n",
       "    <g transform=\"translate(363.858787 329.391066) scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-6c\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-61\" x=\"27.783203\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-62\" x=\"89.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-65\" x=\"152.539062\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\" x=\"214.0625\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"241.845703\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-3d\" x=\"273.632812\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"357.421875\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-31\" x=\"389.208984\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p86823b3379\">\n",
       "   <rect x=\"10.7\" y=\"22.318125\" width=\"130.447059\" height=\"130.447059\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p8e595f24d9\">\n",
       "   <rect x=\"168.252941\" y=\"22.318125\" width=\"130.447059\" height=\"130.447059\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p5cf87445b8\">\n",
       "   <rect x=\"325.805882\" y=\"22.318125\" width=\"130.447059\" height=\"130.447059\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p17fe72808c\">\n",
       "   <rect x=\"10.7\" y=\"178.854596\" width=\"130.447059\" height=\"130.447059\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"pd49c230d2d\">\n",
       "   <rect x=\"168.252941\" y=\"178.854596\" width=\"130.447059\" height=\"130.447059\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"pef0e9d1c3c\">\n",
       "   <rect x=\"325.805882\" y=\"178.854596\" width=\"130.447059\" height=\"130.447059\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p0ff90ad2f4\">\n",
       "   <rect x=\"10.7\" y=\"335.391066\" width=\"130.447059\" height=\"130.447059\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p9a072a97f4\">\n",
       "   <rect x=\"168.252941\" y=\"335.391066\" width=\"130.447059\" height=\"130.447059\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p9467f0ac03\">\n",
       "   <rect x=\"325.805882\" y=\"335.391066\" width=\"130.447059\" height=\"130.447059\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 800x800 with 9 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "%config InlineBackend.figure_format = 'svg'\n",
    "\n",
    "from matplotlib import pyplot as plt \n",
    "\n",
    "plt.figure(figsize=(8,8)) \n",
    "for i in range(9):\n",
    "    img,label = ds_train[i]\n",
    "    img = img.permute(1,2,0)\n",
    "    ax=plt.subplot(3,3,i+1)\n",
    "    ax.imshow(img.numpy())\n",
    "    ax.set_title(\"label = %d\"%label)\n",
    "    ax.set_xticks([])\n",
    "    ax.set_yticks([]) \n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "485da125",
   "metadata": {},
   "source": [
    "### 2, create the  model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "ab16580e-6d3d-44d7-8ade-88e8eb3bfe5e",
   "metadata": {},
   "outputs": [],
   "source": [
    "def create_net():\n",
    "    net = nn.Sequential()\n",
    "    net.add_module(\"conv1\",nn.Conv2d(in_channels=1,out_channels=32,kernel_size = 3))\n",
    "    net.add_module(\"pool1\",nn.MaxPool2d(kernel_size = 2,stride = 2))\n",
    "    net.add_module(\"conv2\",nn.Conv2d(in_channels=32,out_channels=64,kernel_size = 5))\n",
    "    net.add_module(\"pool2\",nn.MaxPool2d(kernel_size = 2,stride = 2))\n",
    "    net.add_module(\"dropout\",nn.Dropout2d(p = 0.1))\n",
    "    net.add_module(\"adaptive_pool\",nn.AdaptiveMaxPool2d((1,1)))\n",
    "    net.add_module(\"flatten\",nn.Flatten())\n",
    "    net.add_module(\"linear1\",nn.Linear(64,32))\n",
    "    net.add_module(\"relu\",nn.ReLU())\n",
    "    net.add_module(\"linear2\",nn.Linear(32,10))\n",
    "    return net\n",
    "\n",
    "net = create_net()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8db20e5a-ee7a-41cd-b53d-aeefc2ccc2ef",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "343aea60-3fba-4ed0-ad3b-dc2b19073299",
   "metadata": {},
   "source": [
    "## 3, train the model "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "cbbbb9d2-7638-4c94-b678-43057cca81e3",
   "metadata": {},
   "outputs": [],
   "source": [
    "from fastai.learner import Learner \n",
    "from fastai.data.core import DataLoaders\n",
    "from fastai.optimizer import OptimWrapper\n",
    "from fastai.metrics import accuracy\n",
    "import fastai.callback.schedule # To get `fit_one_cycle`, `lr_find`\n",
    "\n",
    "\n",
    "from torch import optim\n",
    "from functools import partial\n",
    "\n",
    "\n",
    "dls = DataLoaders(dl_train,dl_val)\n",
    "net = create_net()\n",
    "loss_fn = nn.CrossEntropyLoss()\n",
    "\n",
    "opt_fn = partial(OptimWrapper, opt=optim.Adam)\n",
    "\n",
    "learner = Learner(dls , model = net, loss_func=loss_fn,\n",
    "                opt_func=opt_fn, metrics=[accuracy])\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "71f2f795-d6cd-43d2-9ce5-ee4a170aad9f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Start Fit\n",
      "   - before_fit     : [TrainEvalCallback, Recorder, ProgressCallback]\n",
      "  Start Epoch Loop\n",
      "     - before_epoch   : [Recorder, ProgressCallback]\n",
      "    Start Train\n",
      "       - before_train   : [TrainEvalCallback, Recorder, ProgressCallback]\n",
      "      Start Batch Loop\n",
      "         - before_batch   : [CastToTensor]\n",
      "         - after_pred     : []\n",
      "         - after_loss     : []\n",
      "         - before_backward: []\n",
      "         - before_step    : []\n",
      "         - after_step     : []\n",
      "         - after_cancel_batch: []\n",
      "         - after_batch    : [TrainEvalCallback, Recorder, ProgressCallback]\n",
      "      End Batch Loop\n",
      "    End Train\n",
      "     - after_cancel_train: [Recorder]\n",
      "     - after_train    : [Recorder, ProgressCallback]\n",
      "    Start Valid\n",
      "       - before_validate: [TrainEvalCallback, Recorder, ProgressCallback]\n",
      "      Start Batch Loop\n",
      "         - **CBs same as train batch**: []\n",
      "      End Batch Loop\n",
      "    End Valid\n",
      "     - after_cancel_validate: [Recorder]\n",
      "     - after_validate : [Recorder, ProgressCallback]\n",
      "  End Epoch Loop\n",
      "   - after_cancel_epoch: []\n",
      "   - after_epoch    : [Recorder]\n",
      "End Fit\n",
      " - after_cancel_fit: []\n",
      " - after_fit      : [ProgressCallback]\n"
     ]
    }
   ],
   "source": [
    "learner.show_training_loop()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "d65a9f28-7c41-4381-a8c4-cbc367c80575",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>accuracy</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>1.151683</td>\n",
       "      <td>0.925755</td>\n",
       "      <td>0.834000</td>\n",
       "      <td>00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>0.513911</td>\n",
       "      <td>0.392822</td>\n",
       "      <td>0.912900</td>\n",
       "      <td>00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>0.323926</td>\n",
       "      <td>0.244467</td>\n",
       "      <td>0.939500</td>\n",
       "      <td>00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>0.244718</td>\n",
       "      <td>0.188602</td>\n",
       "      <td>0.951600</td>\n",
       "      <td>00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>0.207875</td>\n",
       "      <td>0.154906</td>\n",
       "      <td>0.958000</td>\n",
       "      <td>00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>5</td>\n",
       "      <td>0.172860</td>\n",
       "      <td>0.135931</td>\n",
       "      <td>0.962100</td>\n",
       "      <td>00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>6</td>\n",
       "      <td>0.160814</td>\n",
       "      <td>0.120424</td>\n",
       "      <td>0.966300</td>\n",
       "      <td>00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>7</td>\n",
       "      <td>0.137461</td>\n",
       "      <td>0.110854</td>\n",
       "      <td>0.967900</td>\n",
       "      <td>00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>8</td>\n",
       "      <td>0.128653</td>\n",
       "      <td>0.102656</td>\n",
       "      <td>0.970600</td>\n",
       "      <td>00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>9</td>\n",
       "      <td>0.117177</td>\n",
       "      <td>0.096568</td>\n",
       "      <td>0.972200</td>\n",
       "      <td>00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>10</td>\n",
       "      <td>0.103679</td>\n",
       "      <td>0.089703</td>\n",
       "      <td>0.972900</td>\n",
       "      <td>00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>11</td>\n",
       "      <td>0.099377</td>\n",
       "      <td>0.085109</td>\n",
       "      <td>0.973900</td>\n",
       "      <td>00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>12</td>\n",
       "      <td>0.097696</td>\n",
       "      <td>0.081205</td>\n",
       "      <td>0.976000</td>\n",
       "      <td>00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>13</td>\n",
       "      <td>0.094125</td>\n",
       "      <td>0.078575</td>\n",
       "      <td>0.975800</td>\n",
       "      <td>00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>14</td>\n",
       "      <td>0.091908</td>\n",
       "      <td>0.075876</td>\n",
       "      <td>0.977000</td>\n",
       "      <td>00:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 0 with valid_loss value: 0.9257552623748779.\n"
     ]
    },
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"383.162453pt\" height=\"252.838125pt\" viewBox=\"0 0 383.162453 252.838125\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2023-03-04T16:13:22.601703</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.6.2, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 252.838125 \n",
       "L 383.162453 252.838125 \n",
       "L 383.162453 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 30.103125 228.96 \n",
       "L 364.903125 228.96 \n",
       "L 364.903125 7.2 \n",
       "L 30.103125 7.2 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_1\">\n",
       "    <g id=\"xtick_1\">\n",
       "     <g id=\"line2d_1\">\n",
       "      <defs>\n",
       "       <path id=\"m349a04f231\" d=\"M 0 0 \n",
       "L 0 3.5 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#m349a04f231\" x=\"30.103125\" y=\"228.96\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_1\">\n",
       "      <!-- 0 -->\n",
       "      <g transform=\"translate(26.921875 243.558437) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-30\" d=\"M 2034 4250 \n",
       "Q 1547 4250 1301 3770 \n",
       "Q 1056 3291 1056 2328 \n",
       "Q 1056 1369 1301 889 \n",
       "Q 1547 409 2034 409 \n",
       "Q 2525 409 2770 889 \n",
       "Q 3016 1369 3016 2328 \n",
       "Q 3016 3291 2770 3770 \n",
       "Q 2525 4250 2034 4250 \n",
       "z\n",
       "M 2034 4750 \n",
       "Q 2819 4750 3233 4129 \n",
       "Q 3647 3509 3647 2328 \n",
       "Q 3647 1150 3233 529 \n",
       "Q 2819 -91 2034 -91 \n",
       "Q 1250 -91 836 529 \n",
       "Q 422 1150 422 2328 \n",
       "Q 422 3509 836 4129 \n",
       "Q 1250 4750 2034 4750 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_2\">\n",
       "     <g id=\"line2d_2\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m349a04f231\" x=\"77.693743\" y=\"228.96\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_2\">\n",
       "      <!-- 1000 -->\n",
       "      <g transform=\"translate(64.968743 243.558437) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-31\" d=\"M 794 531 \n",
       "L 1825 531 \n",
       "L 1825 4091 \n",
       "L 703 3866 \n",
       "L 703 4441 \n",
       "L 1819 4666 \n",
       "L 2450 4666 \n",
       "L 2450 531 \n",
       "L 3481 531 \n",
       "L 3481 0 \n",
       "L 794 0 \n",
       "L 794 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_3\">\n",
       "     <g id=\"line2d_3\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m349a04f231\" x=\"125.284362\" y=\"228.96\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_3\">\n",
       "      <!-- 2000 -->\n",
       "      <g transform=\"translate(112.559362 243.558437) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-32\" d=\"M 1228 531 \n",
       "L 3431 531 \n",
       "L 3431 0 \n",
       "L 469 0 \n",
       "L 469 531 \n",
       "Q 828 903 1448 1529 \n",
       "Q 2069 2156 2228 2338 \n",
       "Q 2531 2678 2651 2914 \n",
       "Q 2772 3150 2772 3378 \n",
       "Q 2772 3750 2511 3984 \n",
       "Q 2250 4219 1831 4219 \n",
       "Q 1534 4219 1204 4116 \n",
       "Q 875 4013 500 3803 \n",
       "L 500 4441 \n",
       "Q 881 4594 1212 4672 \n",
       "Q 1544 4750 1819 4750 \n",
       "Q 2544 4750 2975 4387 \n",
       "Q 3406 4025 3406 3419 \n",
       "Q 3406 3131 3298 2873 \n",
       "Q 3191 2616 2906 2266 \n",
       "Q 2828 2175 2409 1742 \n",
       "Q 1991 1309 1228 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_4\">\n",
       "     <g id=\"line2d_4\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m349a04f231\" x=\"172.87498\" y=\"228.96\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_4\">\n",
       "      <!-- 3000 -->\n",
       "      <g transform=\"translate(160.14998 243.558437) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-33\" d=\"M 2597 2516 \n",
       "Q 3050 2419 3304 2112 \n",
       "Q 3559 1806 3559 1356 \n",
       "Q 3559 666 3084 287 \n",
       "Q 2609 -91 1734 -91 \n",
       "Q 1441 -91 1130 -33 \n",
       "Q 819 25 488 141 \n",
       "L 488 750 \n",
       "Q 750 597 1062 519 \n",
       "Q 1375 441 1716 441 \n",
       "Q 2309 441 2620 675 \n",
       "Q 2931 909 2931 1356 \n",
       "Q 2931 1769 2642 2001 \n",
       "Q 2353 2234 1838 2234 \n",
       "L 1294 2234 \n",
       "L 1294 2753 \n",
       "L 1863 2753 \n",
       "Q 2328 2753 2575 2939 \n",
       "Q 2822 3125 2822 3475 \n",
       "Q 2822 3834 2567 4026 \n",
       "Q 2313 4219 1838 4219 \n",
       "Q 1578 4219 1281 4162 \n",
       "Q 984 4106 628 3988 \n",
       "L 628 4550 \n",
       "Q 988 4650 1302 4700 \n",
       "Q 1616 4750 1894 4750 \n",
       "Q 2613 4750 3031 4423 \n",
       "Q 3450 4097 3450 3541 \n",
       "Q 3450 3153 3228 2886 \n",
       "Q 3006 2619 2597 2516 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-33\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_5\">\n",
       "     <g id=\"line2d_5\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m349a04f231\" x=\"220.465598\" y=\"228.96\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_5\">\n",
       "      <!-- 4000 -->\n",
       "      <g transform=\"translate(207.740598 243.558437) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-34\" d=\"M 2419 4116 \n",
       "L 825 1625 \n",
       "L 2419 1625 \n",
       "L 2419 4116 \n",
       "z\n",
       "M 2253 4666 \n",
       "L 3047 4666 \n",
       "L 3047 1625 \n",
       "L 3713 1625 \n",
       "L 3713 1100 \n",
       "L 3047 1100 \n",
       "L 3047 0 \n",
       "L 2419 0 \n",
       "L 2419 1100 \n",
       "L 313 1100 \n",
       "L 313 1709 \n",
       "L 2253 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-34\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_6\">\n",
       "     <g id=\"line2d_6\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m349a04f231\" x=\"268.056217\" y=\"228.96\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_6\">\n",
       "      <!-- 5000 -->\n",
       "      <g transform=\"translate(255.331217 243.558437) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-35\" d=\"M 691 4666 \n",
       "L 3169 4666 \n",
       "L 3169 4134 \n",
       "L 1269 4134 \n",
       "L 1269 2991 \n",
       "Q 1406 3038 1543 3061 \n",
       "Q 1681 3084 1819 3084 \n",
       "Q 2600 3084 3056 2656 \n",
       "Q 3513 2228 3513 1497 \n",
       "Q 3513 744 3044 326 \n",
       "Q 2575 -91 1722 -91 \n",
       "Q 1428 -91 1123 -41 \n",
       "Q 819 9 494 109 \n",
       "L 494 744 \n",
       "Q 775 591 1075 516 \n",
       "Q 1375 441 1709 441 \n",
       "Q 2250 441 2565 725 \n",
       "Q 2881 1009 2881 1497 \n",
       "Q 2881 1984 2565 2268 \n",
       "Q 2250 2553 1709 2553 \n",
       "Q 1456 2553 1204 2497 \n",
       "Q 953 2441 691 2322 \n",
       "L 691 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-35\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_7\">\n",
       "     <g id=\"line2d_7\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m349a04f231\" x=\"315.646835\" y=\"228.96\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_7\">\n",
       "      <!-- 6000 -->\n",
       "      <g transform=\"translate(302.921835 243.558437) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-36\" d=\"M 2113 2584 \n",
       "Q 1688 2584 1439 2293 \n",
       "Q 1191 2003 1191 1497 \n",
       "Q 1191 994 1439 701 \n",
       "Q 1688 409 2113 409 \n",
       "Q 2538 409 2786 701 \n",
       "Q 3034 994 3034 1497 \n",
       "Q 3034 2003 2786 2293 \n",
       "Q 2538 2584 2113 2584 \n",
       "z\n",
       "M 3366 4563 \n",
       "L 3366 3988 \n",
       "Q 3128 4100 2886 4159 \n",
       "Q 2644 4219 2406 4219 \n",
       "Q 1781 4219 1451 3797 \n",
       "Q 1122 3375 1075 2522 \n",
       "Q 1259 2794 1537 2939 \n",
       "Q 1816 3084 2150 3084 \n",
       "Q 2853 3084 3261 2657 \n",
       "Q 3669 2231 3669 1497 \n",
       "Q 3669 778 3244 343 \n",
       "Q 2819 -91 2113 -91 \n",
       "Q 1303 -91 875 529 \n",
       "Q 447 1150 447 2328 \n",
       "Q 447 3434 972 4092 \n",
       "Q 1497 4750 2381 4750 \n",
       "Q 2619 4750 2861 4703 \n",
       "Q 3103 4656 3366 4563 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-36\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_8\">\n",
       "     <g id=\"line2d_8\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m349a04f231\" x=\"363.237453\" y=\"228.96\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_8\">\n",
       "      <!-- 7000 -->\n",
       "      <g transform=\"translate(350.512453 243.558437) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-37\" d=\"M 525 4666 \n",
       "L 3525 4666 \n",
       "L 3525 4397 \n",
       "L 1831 0 \n",
       "L 1172 0 \n",
       "L 2766 4134 \n",
       "L 525 4134 \n",
       "L 525 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-37\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_2\">\n",
       "    <g id=\"ytick_1\">\n",
       "     <g id=\"line2d_9\">\n",
       "      <defs>\n",
       "       <path id=\"mce1570a1d7\" d=\"M 0 0 \n",
       "L -3.5 0 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#mce1570a1d7\" x=\"30.103125\" y=\"228.96\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_9\">\n",
       "      <!-- 0.0 -->\n",
       "      <g transform=\"translate(7.2 232.759219) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-2e\" d=\"M 684 794 \n",
       "L 1344 794 \n",
       "L 1344 0 \n",
       "L 684 0 \n",
       "L 684 794 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_2\">\n",
       "     <g id=\"line2d_10\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mce1570a1d7\" x=\"30.103125\" y=\"181.013553\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_10\">\n",
       "      <!-- 0.5 -->\n",
       "      <g transform=\"translate(7.2 184.812772) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_3\">\n",
       "     <g id=\"line2d_11\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mce1570a1d7\" x=\"30.103125\" y=\"133.067106\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_11\">\n",
       "      <!-- 1.0 -->\n",
       "      <g transform=\"translate(7.2 136.866324) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_4\">\n",
       "     <g id=\"line2d_12\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mce1570a1d7\" x=\"30.103125\" y=\"85.120658\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_12\">\n",
       "      <!-- 1.5 -->\n",
       "      <g transform=\"translate(7.2 88.919877) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_5\">\n",
       "     <g id=\"line2d_13\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mce1570a1d7\" x=\"30.103125\" y=\"37.174211\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_13\">\n",
       "      <!-- 2.0 -->\n",
       "      <g transform=\"translate(7.2 40.97343) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"line2d_14\">\n",
       "    <path d=\"M 30.103125 7.2 \n",
       "L 30.198306 8.255386 \n",
       "L 30.245897 7.910365 \n",
       "L 30.341078 7.62664 \n",
       "L 30.388669 7.8057 \n",
       "L 30.436259 7.639077 \n",
       "L 30.48385 7.475861 \n",
       "L 30.531441 7.544197 \n",
       "L 31.150119 8.525713 \n",
       "L 31.2453 8.627224 \n",
       "L 31.530844 8.983835 \n",
       "L 31.578434 8.923866 \n",
       "L 31.626025 8.967831 \n",
       "L 32.05434 9.661553 \n",
       "L 32.673018 10.63733 \n",
       "L 33.053743 11.332675 \n",
       "L 33.244106 11.767843 \n",
       "L 35.671227 18.059255 \n",
       "L 36.860993 22.188958 \n",
       "L 37.670033 25.313413 \n",
       "L 38.383893 28.737254 \n",
       "L 38.812208 30.801866 \n",
       "L 39.526067 34.315786 \n",
       "L 39.906792 36.441966 \n",
       "L 40.811014 41.481031 \n",
       "L 41.572464 46.412013 \n",
       "L 44.761035 68.88883 \n",
       "L 45.236942 73.005616 \n",
       "L 46.331526 80.318051 \n",
       "L 46.902613 83.891311 \n",
       "L 47.42611 88.16282 \n",
       "L 47.521291 88.446465 \n",
       "L 48.139969 92.83431 \n",
       "L 48.282741 93.781052 \n",
       "L 48.615876 96.202092 \n",
       "L 48.94901 98.810057 \n",
       "L 49.472507 101.41305 \n",
       "L 50.5195 108.297325 \n",
       "L 50.614682 108.646254 \n",
       "L 50.852635 110.063315 \n",
       "L 50.947816 110.543865 \n",
       "L 51.23336 112.455377 \n",
       "L 51.28095 112.515586 \n",
       "L 51.804447 115.798902 \n",
       "L 51.899628 116.155434 \n",
       "L 52.232763 117.918727 \n",
       "L 53.041803 121.876537 \n",
       "L 53.089394 121.957665 \n",
       "L 53.850844 126.586254 \n",
       "L 53.946025 126.9449 \n",
       "L 54.136387 128.262406 \n",
       "L 54.183978 128.226489 \n",
       "L 55.278562 133.482594 \n",
       "L 55.326153 133.426747 \n",
       "L 55.373743 133.455651 \n",
       "L 55.706878 134.751528 \n",
       "L 56.991824 139.654703 \n",
       "L 57.039415 139.52733 \n",
       "L 57.087006 139.423036 \n",
       "L 57.515321 141.328443 \n",
       "L 57.705684 141.697949 \n",
       "L 58.133999 143.424188 \n",
       "L 58.18159 143.465318 \n",
       "L 58.847858 146.904963 \n",
       "L 58.895449 146.812592 \n",
       "L 59.085812 147.449609 \n",
       "L 59.418946 148.879964 \n",
       "L 59.656899 149.46063 \n",
       "L 59.70449 149.292881 \n",
       "L 59.990033 150.373135 \n",
       "L 60.465939 151.904716 \n",
       "L 60.51353 151.806978 \n",
       "L 60.561121 151.831166 \n",
       "L 61.370161 154.058434 \n",
       "L 61.417752 154.068637 \n",
       "L 62.226792 157.182175 \n",
       "L 62.321974 157.211976 \n",
       "L 62.464745 157.612536 \n",
       "L 62.940652 158.760029 \n",
       "L 62.988242 158.644687 \n",
       "L 63.035833 158.761492 \n",
       "L 63.226195 159.273644 \n",
       "L 63.321377 159.118252 \n",
       "L 63.368967 159.32077 \n",
       "L 63.464148 159.284052 \n",
       "L 63.511739 159.234726 \n",
       "L 63.55933 159.331898 \n",
       "L 63.654511 159.751268 \n",
       "L 63.702102 159.521852 \n",
       "L 63.797283 159.403641 \n",
       "L 63.987645 160.068578 \n",
       "L 64.178008 160.985382 \n",
       "L 64.225598 160.78031 \n",
       "L 64.463551 161.678669 \n",
       "L 64.796686 162.777533 \n",
       "L 64.844276 162.747646 \n",
       "L 64.987048 162.901946 \n",
       "L 65.272592 164.119731 \n",
       "L 65.605726 164.988306 \n",
       "L 65.700908 164.914156 \n",
       "L 65.748498 164.831925 \n",
       "L 65.796089 164.905909 \n",
       "L 66.034042 165.474051 \n",
       "L 66.129223 165.72298 \n",
       "L 66.176814 165.789304 \n",
       "L 66.224404 165.722831 \n",
       "L 66.319586 165.637936 \n",
       "L 66.65272 166.676169 \n",
       "L 66.700311 166.63101 \n",
       "L 66.890673 167.058661 \n",
       "L 66.938264 166.976887 \n",
       "L 67.128626 167.642539 \n",
       "L 67.223807 167.188687 \n",
       "L 67.366579 167.833877 \n",
       "L 67.41417 167.703708 \n",
       "L 67.747304 168.571877 \n",
       "L 67.794895 168.844646 \n",
       "L 67.890076 168.750663 \n",
       "L 68.461163 170.101908 \n",
       "L 68.508754 170.073404 \n",
       "L 68.556345 170.316194 \n",
       "L 68.603935 170.208151 \n",
       "L 68.699116 170.242925 \n",
       "L 68.889479 170.342966 \n",
       "L 68.93707 170.278082 \n",
       "L 69.127432 170.800477 \n",
       "L 69.222613 171.251528 \n",
       "L 69.412976 171.663107 \n",
       "L 69.793701 172.03678 \n",
       "L 70.174426 172.938477 \n",
       "L 70.222016 172.886305 \n",
       "L 70.459969 173.604615 \n",
       "L 70.50756 173.577248 \n",
       "L 70.650332 173.524687 \n",
       "L 70.745513 173.860173 \n",
       "L 70.793104 173.777885 \n",
       "L 70.983466 174.319181 \n",
       "L 71.078647 174.653324 \n",
       "L 71.126238 174.576666 \n",
       "L 71.221419 174.820833 \n",
       "L 71.26901 175.014337 \n",
       "L 71.364191 174.978723 \n",
       "L 71.459372 175.078175 \n",
       "L 71.554554 175.423047 \n",
       "L 71.602144 175.353281 \n",
       "L 71.649735 175.40474 \n",
       "L 71.887688 176.259494 \n",
       "L 71.935279 176.145341 \n",
       "L 72.173232 176.667209 \n",
       "L 72.316003 176.617912 \n",
       "L 72.553957 177.18075 \n",
       "L 72.601547 177.139329 \n",
       "L 72.79191 177.551153 \n",
       "L 72.982272 177.849174 \n",
       "L 73.362997 178.73381 \n",
       "L 73.410588 178.753837 \n",
       "L 73.458178 178.473536 \n",
       "L 73.505769 178.502308 \n",
       "L 73.838903 179.408784 \n",
       "L 73.886494 179.302421 \n",
       "L 73.934084 179.111718 \n",
       "L 73.981675 179.289389 \n",
       "L 74.029266 179.340601 \n",
       "L 74.076856 179.235605 \n",
       "L 74.219628 179.026874 \n",
       "L 74.3624 179.227448 \n",
       "L 74.457581 179.488797 \n",
       "L 74.552763 179.790527 \n",
       "L 74.647944 179.709216 \n",
       "L 74.743125 179.689525 \n",
       "L 74.838306 179.975897 \n",
       "L 74.933487 179.858423 \n",
       "L 75.12385 180.078556 \n",
       "L 75.171441 179.978944 \n",
       "L 75.266622 180.205381 \n",
       "L 75.409394 179.768082 \n",
       "L 75.742528 180.21895 \n",
       "L 75.790119 180.093097 \n",
       "L 75.837709 180.218984 \n",
       "L 75.93289 180.276661 \n",
       "L 76.69434 182.307604 \n",
       "L 76.837112 182.14644 \n",
       "L 77.122656 182.873749 \n",
       "L 77.360609 183.490918 \n",
       "L 77.45579 183.02338 \n",
       "L 77.503381 183.16001 \n",
       "L 77.693743 183.537418 \n",
       "L 77.836515 183.535029 \n",
       "L 77.884106 183.552356 \n",
       "L 77.931696 183.443529 \n",
       "L 77.979287 183.542859 \n",
       "L 78.074468 183.560257 \n",
       "L 78.360012 184.338045 \n",
       "L 78.407603 184.298181 \n",
       "L 78.455193 184.246394 \n",
       "L 78.550374 184.487732 \n",
       "L 78.597965 184.401134 \n",
       "L 78.645556 184.423228 \n",
       "L 78.740737 184.662554 \n",
       "L 78.788328 184.633101 \n",
       "L 78.883509 184.509363 \n",
       "L 79.264234 185.377672 \n",
       "L 79.311824 185.36118 \n",
       "L 79.454596 184.893707 \n",
       "L 79.502187 184.954007 \n",
       "L 79.74014 185.188947 \n",
       "L 79.978093 185.665902 \n",
       "L 80.120865 185.318332 \n",
       "L 80.168455 185.255348 \n",
       "L 80.216046 185.33696 \n",
       "L 80.50159 185.825894 \n",
       "L 80.596771 186.1206 \n",
       "L 80.644362 185.875332 \n",
       "L 80.691952 186.059068 \n",
       "L 80.787134 186.245321 \n",
       "L 80.834724 186.064403 \n",
       "L 80.882315 186.249665 \n",
       "L 81.025087 186.395589 \n",
       "L 81.167858 186.519004 \n",
       "L 81.500993 187.682739 \n",
       "L 81.596174 187.741398 \n",
       "L 81.643765 187.872924 \n",
       "L 81.691355 187.836456 \n",
       "L 81.738946 187.742993 \n",
       "L 81.929308 188.48214 \n",
       "L 81.976899 188.2449 \n",
       "L 82.02449 188.089471 \n",
       "L 82.07208 188.198886 \n",
       "L 82.167261 188.252527 \n",
       "L 82.214852 188.112325 \n",
       "L 82.405215 188.640355 \n",
       "L 82.452805 188.514165 \n",
       "L 82.500396 188.563471 \n",
       "L 82.547986 188.79611 \n",
       "L 82.595577 188.356012 \n",
       "L 82.643168 188.50167 \n",
       "L 82.690758 188.676892 \n",
       "L 82.785939 188.6153 \n",
       "L 82.928711 188.550485 \n",
       "L 83.214255 189.285253 \n",
       "L 83.261846 189.168373 \n",
       "L 83.404618 189.447269 \n",
       "L 83.499799 189.49965 \n",
       "L 83.547389 189.379313 \n",
       "L 83.642571 189.423235 \n",
       "L 83.737752 189.67661 \n",
       "L 83.785342 189.61529 \n",
       "L 83.832933 189.707306 \n",
       "L 83.880524 189.648749 \n",
       "L 84.023296 189.231323 \n",
       "L 84.118477 189.340012 \n",
       "L 84.546792 190.216574 \n",
       "L 84.784745 189.975453 \n",
       "L 84.832336 189.967063 \n",
       "L 84.927517 190.130485 \n",
       "L 84.975108 189.996301 \n",
       "L 85.022699 190.154185 \n",
       "L 85.070289 190.123655 \n",
       "L 85.641377 191.411636 \n",
       "L 85.688967 191.50201 \n",
       "L 85.87933 191.055854 \n",
       "L 85.974511 191.395527 \n",
       "L 86.022102 191.325559 \n",
       "L 86.069692 191.195224 \n",
       "L 86.117283 191.305417 \n",
       "L 86.307645 191.551333 \n",
       "L 86.355236 191.406575 \n",
       "L 86.545598 191.364911 \n",
       "L 86.593189 191.306448 \n",
       "L 86.64078 191.40454 \n",
       "L 87.021505 192.049353 \n",
       "L 87.069095 191.976032 \n",
       "L 87.211867 192.287856 \n",
       "L 87.307048 192.165155 \n",
       "L 87.44982 192.689778 \n",
       "L 87.592592 192.584456 \n",
       "L 87.640183 192.631676 \n",
       "L 87.878136 193.261302 \n",
       "L 88.068498 192.754068 \n",
       "L 88.116089 192.698483 \n",
       "L 88.401632 193.233326 \n",
       "L 88.496814 193.146508 \n",
       "L 88.591995 193.225125 \n",
       "L 88.687176 193.089472 \n",
       "L 88.782357 193.400504 \n",
       "L 88.829948 193.276151 \n",
       "L 88.97272 193.335297 \n",
       "L 89.115492 193.010267 \n",
       "L 89.163082 193.195926 \n",
       "L 89.210673 193.334634 \n",
       "L 89.258264 193.133348 \n",
       "L 89.353445 193.405677 \n",
       "L 89.401035 193.271456 \n",
       "L 89.448626 193.191491 \n",
       "L 89.496217 193.320225 \n",
       "L 89.638989 193.641348 \n",
       "L 89.829351 193.602587 \n",
       "L 90.114895 194.230815 \n",
       "L 90.400438 193.742766 \n",
       "L 90.448029 193.835049 \n",
       "L 90.49562 193.94725 \n",
       "L 90.590801 193.887295 \n",
       "L 90.781163 193.56078 \n",
       "L 90.923935 193.7276 \n",
       "L 90.971526 193.7659 \n",
       "L 91.25707 194.69992 \n",
       "L 91.30466 194.468907 \n",
       "L 91.399841 194.549323 \n",
       "L 91.542613 194.441163 \n",
       "L 91.590204 194.650751 \n",
       "L 91.637795 194.595074 \n",
       "L 91.685385 194.542893 \n",
       "L 91.923338 194.897601 \n",
       "L 92.113701 195.062707 \n",
       "L 92.256473 195.376002 \n",
       "L 92.399244 195.435525 \n",
       "L 92.589607 195.829952 \n",
       "L 92.637197 195.804691 \n",
       "L 92.684788 195.545409 \n",
       "L 92.732379 195.68654 \n",
       "L 92.82756 195.724415 \n",
       "L 92.875151 195.779754 \n",
       "L 92.922741 195.627029 \n",
       "L 92.970332 195.671353 \n",
       "L 93.255876 196.210515 \n",
       "L 93.398647 196.235375 \n",
       "L 93.446238 196.116738 \n",
       "L 93.493829 196.259086 \n",
       "L 93.684191 196.463936 \n",
       "L 93.731782 196.244046 \n",
       "L 93.779372 196.397583 \n",
       "L 93.874554 196.717805 \n",
       "L 93.922144 196.663998 \n",
       "L 94.112507 196.787011 \n",
       "L 94.160097 196.916445 \n",
       "L 94.207688 196.806332 \n",
       "L 94.35046 196.730871 \n",
       "L 94.39805 196.824783 \n",
       "L 94.493232 196.303194 \n",
       "L 94.540822 196.330492 \n",
       "L 94.826366 196.63177 \n",
       "L 94.873957 196.855184 \n",
       "L 94.921547 196.710732 \n",
       "L 95.016728 196.838403 \n",
       "L 95.349863 197.439702 \n",
       "L 95.492635 197.200016 \n",
       "L 95.682997 197.383746 \n",
       "L 95.778178 197.161324 \n",
       "L 95.825769 197.341218 \n",
       "L 95.87336 197.531741 \n",
       "L 95.92095 197.324989 \n",
       "L 96.063722 197.49811 \n",
       "L 96.254084 197.426888 \n",
       "L 96.492038 197.855408 \n",
       "L 96.587219 197.583808 \n",
       "L 96.634809 197.651819 \n",
       "L 96.825172 198.007862 \n",
       "L 96.872763 197.896146 \n",
       "L 96.920353 198.143409 \n",
       "L 96.967944 197.997176 \n",
       "L 97.063125 197.880951 \n",
       "L 97.205897 198.243587 \n",
       "L 97.44385 198.45094 \n",
       "L 97.491441 198.580565 \n",
       "L 97.539031 198.501046 \n",
       "L 97.729394 198.562538 \n",
       "L 97.824575 198.832463 \n",
       "L 97.872166 198.812936 \n",
       "L 97.919756 198.770651 \n",
       "L 98.157709 199.285452 \n",
       "L 98.2053 199.26469 \n",
       "L 98.633615 198.975709 \n",
       "L 98.871568 198.443987 \n",
       "L 99.204703 198.942567 \n",
       "L 99.252293 198.919538 \n",
       "L 99.442656 199.242759 \n",
       "L 99.585428 199.105709 \n",
       "L 99.7282 199.348996 \n",
       "L 99.77579 199.299078 \n",
       "L 99.823381 199.38263 \n",
       "L 100.013743 199.717122 \n",
       "L 100.108925 200.044072 \n",
       "L 100.156515 199.994866 \n",
       "L 100.204106 199.970403 \n",
       "L 100.251696 199.7461 \n",
       "L 100.299287 199.982163 \n",
       "L 100.584831 199.971535 \n",
       "L 100.632421 199.921728 \n",
       "L 100.680012 199.994952 \n",
       "L 100.917965 200.332447 \n",
       "L 100.965556 200.26746 \n",
       "L 101.060737 200.109113 \n",
       "L 101.251099 199.513179 \n",
       "L 101.631824 200.136337 \n",
       "L 101.679415 200.101452 \n",
       "L 101.727006 200.073708 \n",
       "L 101.869777 200.388832 \n",
       "L 101.917368 200.311445 \n",
       "L 102.107731 199.937658 \n",
       "L 102.298093 199.939876 \n",
       "L 102.583637 200.518678 \n",
       "L 102.631227 200.485738 \n",
       "L 102.678818 200.474959 \n",
       "L 103.202315 201.536883 \n",
       "L 103.249905 201.621483 \n",
       "L 103.297496 201.433112 \n",
       "L 103.345087 201.536809 \n",
       "L 103.392677 201.7367 \n",
       "L 103.440268 201.622498 \n",
       "L 103.535449 201.491952 \n",
       "L 103.58304 201.605814 \n",
       "L 103.963765 202.267707 \n",
       "L 104.058946 202.120589 \n",
       "L 104.106537 202.260997 \n",
       "L 104.154127 202.126553 \n",
       "L 104.34449 201.896847 \n",
       "L 104.39208 201.984285 \n",
       "L 104.439671 201.913874 \n",
       "L 104.630033 201.623344 \n",
       "L 104.772805 201.824915 \n",
       "L 105.058349 201.374972 \n",
       "L 105.201121 201.779218 \n",
       "L 105.248711 201.579419 \n",
       "L 105.296302 201.759774 \n",
       "L 105.534255 202.35584 \n",
       "L 105.629436 201.979344 \n",
       "L 105.677027 202.119449 \n",
       "L 105.772208 201.942521 \n",
       "L 105.819799 202.062747 \n",
       "L 106.057752 202.593149 \n",
       "L 106.105342 202.518525 \n",
       "L 106.295705 202.266399 \n",
       "L 106.724021 201.893557 \n",
       "L 106.866792 202.132472 \n",
       "L 107.104745 201.592991 \n",
       "L 107.152336 201.563326 \n",
       "L 107.390289 201.940554 \n",
       "L 107.533061 201.818042 \n",
       "L 107.723424 202.237735 \n",
       "L 107.771014 201.983825 \n",
       "L 107.818605 202.02172 \n",
       "L 107.913786 202.243333 \n",
       "L 107.961377 202.157827 \n",
       "L 108.104148 202.083583 \n",
       "L 108.24692 202.204638 \n",
       "L 108.437283 202.206115 \n",
       "L 108.722826 202.686494 \n",
       "L 108.770417 202.592186 \n",
       "L 108.818008 202.753067 \n",
       "L 108.865598 202.684794 \n",
       "L 108.96078 202.507905 \n",
       "L 109.00837 202.598813 \n",
       "L 109.103551 202.745128 \n",
       "L 109.293914 202.280062 \n",
       "L 109.341505 202.359684 \n",
       "L 109.436686 202.019668 \n",
       "L 109.484276 202.212303 \n",
       "L 109.531867 202.029096 \n",
       "L 109.579458 202.20915 \n",
       "L 109.627048 202.260803 \n",
       "L 109.722229 202.059314 \n",
       "L 109.76982 202.169752 \n",
       "L 109.912592 202.682459 \n",
       "L 110.007773 202.335901 \n",
       "L 110.055364 202.493985 \n",
       "L 110.102954 202.483942 \n",
       "L 110.245726 202.603211 \n",
       "L 110.293317 202.312161 \n",
       "L 110.340908 202.463057 \n",
       "L 110.388498 202.536932 \n",
       "L 110.436089 202.352794 \n",
       "L 110.483679 202.380883 \n",
       "L 110.53127 202.554451 \n",
       "L 110.626451 202.500306 \n",
       "L 110.769223 202.771494 \n",
       "L 110.864404 202.691678 \n",
       "L 110.959586 202.606289 \n",
       "L 111.245129 202.966073 \n",
       "L 111.29272 202.98025 \n",
       "L 111.578264 202.458545 \n",
       "L 111.768626 202.954273 \n",
       "L 111.816217 202.810052 \n",
       "L 111.863807 203.022852 \n",
       "L 111.911398 202.850102 \n",
       "L 111.958989 202.814942 \n",
       "L 112.244532 203.362634 \n",
       "L 112.625257 203.364857 \n",
       "L 112.81562 203.59735 \n",
       "L 113.005982 203.439341 \n",
       "L 113.053573 203.537573 \n",
       "L 113.101163 203.344169 \n",
       "L 113.148754 203.390549 \n",
       "L 113.243935 203.44582 \n",
       "L 113.386707 203.053188 \n",
       "L 113.434298 203.189098 \n",
       "L 113.57707 202.979365 \n",
       "L 113.672251 202.916658 \n",
       "L 113.815023 203.073859 \n",
       "L 114.052976 202.751993 \n",
       "L 114.671654 203.373977 \n",
       "L 114.719244 203.211483 \n",
       "L 114.766835 203.430547 \n",
       "L 114.909607 203.674186 \n",
       "L 115.242741 203.557244 \n",
       "L 115.290332 203.700007 \n",
       "L 115.385513 203.654061 \n",
       "L 115.480694 203.75079 \n",
       "L 115.671057 204.055478 \n",
       "L 115.718647 203.917808 \n",
       "L 115.9566 203.563194 \n",
       "L 116.099372 203.83948 \n",
       "L 116.146963 203.851077 \n",
       "L 116.337325 203.643013 \n",
       "L 116.432507 203.599037 \n",
       "L 116.480097 203.747824 \n",
       "L 116.622869 203.458423 \n",
       "L 116.67046 203.293051 \n",
       "L 116.71805 203.458686 \n",
       "L 116.860822 203.92771 \n",
       "L 116.908413 203.903796 \n",
       "L 116.956003 203.843873 \n",
       "L 117.193957 204.374132 \n",
       "L 117.241547 204.273082 \n",
       "L 117.289138 204.233178 \n",
       "L 117.336728 204.294427 \n",
       "L 117.384319 204.306493 \n",
       "L 117.574682 204.583368 \n",
       "L 117.717453 204.615338 \n",
       "L 117.860225 204.862575 \n",
       "L 117.955406 204.852724 \n",
       "L 118.002997 205.067221 \n",
       "L 118.050588 204.98525 \n",
       "L 118.24095 204.850281 \n",
       "L 118.383722 205.253901 \n",
       "L 118.431313 205.368548 \n",
       "L 118.478903 205.228818 \n",
       "L 118.669266 205.49321 \n",
       "L 118.716856 205.430189 \n",
       "L 118.764447 205.198442 \n",
       "L 118.859628 205.254381 \n",
       "L 119.0024 205.366686 \n",
       "L 119.145172 205.545065 \n",
       "L 119.192763 205.105937 \n",
       "L 119.240353 205.247318 \n",
       "L 119.478306 205.508921 \n",
       "L 119.525897 205.409057 \n",
       "L 119.573487 205.475767 \n",
       "L 119.668669 205.813661 \n",
       "L 119.716259 205.649829 \n",
       "L 119.76385 205.585716 \n",
       "L 119.859031 205.734278 \n",
       "L 119.954212 205.609762 \n",
       "L 120.001803 205.642553 \n",
       "L 120.144575 205.82489 \n",
       "L 120.239756 205.944754 \n",
       "L 120.287347 205.848894 \n",
       "L 120.334937 205.716854 \n",
       "L 120.382528 205.820084 \n",
       "L 120.57289 205.824289 \n",
       "L 120.668072 206.154951 \n",
       "L 120.715662 206.073711 \n",
       "L 120.810844 205.867677 \n",
       "L 120.906025 206.017677 \n",
       "L 121.096387 206.310031 \n",
       "L 121.381931 205.965525 \n",
       "L 121.667475 206.028059 \n",
       "L 122.09579 206.67591 \n",
       "L 122.238562 206.635088 \n",
       "L 122.428925 206.918046 \n",
       "L 122.571696 207.132879 \n",
       "L 122.619287 206.868144 \n",
       "L 122.666878 206.941669 \n",
       "L 122.714468 206.976277 \n",
       "L 122.80965 206.707338 \n",
       "L 122.85724 206.766725 \n",
       "L 123.047603 206.968664 \n",
       "L 123.095193 206.894883 \n",
       "L 123.237965 206.559647 \n",
       "L 123.285556 206.647243 \n",
       "L 123.380737 206.663226 \n",
       "L 123.428328 206.484997 \n",
       "L 123.475918 206.59613 \n",
       "L 123.666281 206.580001 \n",
       "L 123.904234 206.56934 \n",
       "L 124.142187 206.423701 \n",
       "L 124.284959 206.785229 \n",
       "L 124.332549 206.618904 \n",
       "L 124.38014 206.51384 \n",
       "L 124.427731 206.57349 \n",
       "L 124.570502 206.654472 \n",
       "L 124.665684 206.362912 \n",
       "L 124.713274 206.41824 \n",
       "L 124.856046 206.312557 \n",
       "L 124.951227 206.446155 \n",
       "L 125.046409 206.316708 \n",
       "L 125.093999 206.351286 \n",
       "L 125.236771 206.340895 \n",
       "L 125.427134 206.598479 \n",
       "L 126.236174 207.507378 \n",
       "L 126.426537 207.120574 \n",
       "L 126.474127 207.202953 \n",
       "L 126.521718 207.069372 \n",
       "L 126.902443 207.077631 \n",
       "L 126.950033 206.844075 \n",
       "L 126.997624 206.990525 \n",
       "L 127.092805 207.058852 \n",
       "L 127.140396 206.947747 \n",
       "L 127.187986 206.993245 \n",
       "L 127.378349 207.205615 \n",
       "L 127.425939 207.114852 \n",
       "L 127.521121 207.065734 \n",
       "L 127.711483 207.290571 \n",
       "L 127.759074 207.240809 \n",
       "L 127.949436 207.710968 \n",
       "L 128.044618 207.722914 \n",
       "L 128.187389 208.023033 \n",
       "L 128.23498 207.962571 \n",
       "L 128.282571 207.901635 \n",
       "L 128.330161 208.001965 \n",
       "L 128.901249 208.790942 \n",
       "L 128.948839 208.537046 \n",
       "L 129.044021 208.591664 \n",
       "L 129.139202 208.628478 \n",
       "L 129.186792 208.432669 \n",
       "L 129.281974 208.47983 \n",
       "L 129.519927 208.476358 \n",
       "L 129.615108 208.290303 \n",
       "L 129.662699 208.384166 \n",
       "L 129.710289 208.21541 \n",
       "L 129.75788 208.294493 \n",
       "L 129.853061 208.350712 \n",
       "L 129.900652 208.28181 \n",
       "L 129.948242 208.350639 \n",
       "L 130.043424 208.423655 \n",
       "L 130.281377 208.132132 \n",
       "L 130.328967 208.183092 \n",
       "L 130.376558 207.973294 \n",
       "L 130.424148 207.984594 \n",
       "L 130.471739 208.09367 \n",
       "L 130.51933 208.050854 \n",
       "L 130.614511 207.906905 \n",
       "L 130.662102 208.048725 \n",
       "L 130.709692 207.927114 \n",
       "L 130.804873 207.703509 \n",
       "L 130.900055 207.898905 \n",
       "L 131.138008 207.605098 \n",
       "L 131.32837 207.922649 \n",
       "L 131.613914 207.201708 \n",
       "L 131.661505 207.233343 \n",
       "L 132.185001 207.389025 \n",
       "L 132.375364 207.755386 \n",
       "L 132.518136 207.992434 \n",
       "L 132.565726 207.899829 \n",
       "L 132.85127 208.230978 \n",
       "L 133.184404 208.209357 \n",
       "L 133.422357 208.385703 \n",
       "L 133.469948 208.556449 \n",
       "L 133.517539 208.489707 \n",
       "L 133.565129 208.380501 \n",
       "L 133.61272 208.431334 \n",
       "L 133.755492 208.547807 \n",
       "L 134.041035 208.410148 \n",
       "L 134.136217 208.525554 \n",
       "L 134.183807 208.641142 \n",
       "L 134.231398 208.580569 \n",
       "L 134.326579 208.486442 \n",
       "L 134.37417 208.591956 \n",
       "L 134.42176 208.478251 \n",
       "L 134.469351 208.32882 \n",
       "L 134.516942 208.374846 \n",
       "L 134.564532 208.46486 \n",
       "L 134.754895 208.117916 \n",
       "L 134.850076 208.101882 \n",
       "L 134.945257 207.894729 \n",
       "L 134.992848 207.93167 \n",
       "L 135.563935 208.556555 \n",
       "L 135.611526 208.470205 \n",
       "L 135.89707 208.274964 \n",
       "L 136.087432 208.376368 \n",
       "L 136.182613 208.22277 \n",
       "L 136.230204 208.371807 \n",
       "L 136.277795 208.368654 \n",
       "L 136.372976 208.576747 \n",
       "L 136.420566 208.47961 \n",
       "L 136.610929 208.581958 \n",
       "L 136.896473 209.122751 \n",
       "L 137.086835 208.985842 \n",
       "L 137.182016 208.833151 \n",
       "L 137.229607 209.078226 \n",
       "L 137.324788 209.045404 \n",
       "L 137.515151 209.265032 \n",
       "L 137.562741 209.222642 \n",
       "L 137.800694 208.994564 \n",
       "L 137.991057 208.775747 \n",
       "L 138.133829 209.017586 \n",
       "L 138.371782 209.071214 \n",
       "L 138.657325 209.177511 \n",
       "L 138.800097 209.097941 \n",
       "L 138.99046 209.284754 \n",
       "L 139.085641 209.304972 \n",
       "L 139.228413 209.428493 \n",
       "L 139.371185 209.39371 \n",
       "L 139.418775 209.564636 \n",
       "L 139.466366 209.439321 \n",
       "L 139.609138 209.244093 \n",
       "L 139.656728 209.168016 \n",
       "L 139.704319 209.272675 \n",
       "L 139.894682 209.537221 \n",
       "L 140.085044 209.021927 \n",
       "L 140.180225 209.108516 \n",
       "L 140.227816 208.850061 \n",
       "L 140.275406 208.921614 \n",
       "L 140.418178 209.116711 \n",
       "L 140.465769 209.284588 \n",
       "L 140.51336 209.145558 \n",
       "L 140.656131 209.177984 \n",
       "L 140.798903 208.898663 \n",
       "L 140.989266 209.078326 \n",
       "L 141.036856 208.884846 \n",
       "L 141.084447 209.023868 \n",
       "L 141.132038 209.201208 \n",
       "L 141.179628 209.064082 \n",
       "L 141.369991 208.688433 \n",
       "L 141.560353 209.045454 \n",
       "L 141.607944 208.934596 \n",
       "L 141.655534 209.026276 \n",
       "L 141.703125 208.923507 \n",
       "L 141.845897 208.814934 \n",
       "L 141.988669 208.884772 \n",
       "L 142.131441 209.037848 \n",
       "L 142.179031 208.999114 \n",
       "L 142.321803 208.974805 \n",
       "L 142.702528 209.652791 \n",
       "L 142.797709 209.345929 \n",
       "L 142.8453 209.468574 \n",
       "L 142.89289 209.609651 \n",
       "L 142.940481 209.501651 \n",
       "L 143.035662 209.514734 \n",
       "L 143.083253 209.413958 \n",
       "L 143.130844 209.484414 \n",
       "L 143.226025 209.748477 \n",
       "L 143.321206 209.707334 \n",
       "L 143.416387 209.749547 \n",
       "L 143.463978 209.601629 \n",
       "L 143.511568 209.628521 \n",
       "L 143.65434 209.853427 \n",
       "L 143.701931 209.795246 \n",
       "L 143.892293 209.813653 \n",
       "L 144.082656 210.060079 \n",
       "L 144.130247 209.971871 \n",
       "L 144.177837 209.912557 \n",
       "L 144.3682 210.300633 \n",
       "L 144.463381 210.373443 \n",
       "L 144.606153 210.113034 \n",
       "L 144.748925 210.536364 \n",
       "L 144.796515 210.467592 \n",
       "L 144.844106 210.512651 \n",
       "L 144.891696 210.444022 \n",
       "L 145.082059 209.922601 \n",
       "L 145.272421 210.164119 \n",
       "L 145.415193 210.083256 \n",
       "L 145.700737 210.620387 \n",
       "L 145.748328 210.591442 \n",
       "L 145.795918 210.670708 \n",
       "L 146.176643 211.133881 \n",
       "L 146.224234 211.044362 \n",
       "L 146.271824 211.167743 \n",
       "L 146.319415 211.213221 \n",
       "L 146.367006 211.110494 \n",
       "L 146.462187 211.207729 \n",
       "L 146.509777 211.355594 \n",
       "L 146.557368 211.204802 \n",
       "L 146.70014 210.893999 \n",
       "L 146.747731 210.958316 \n",
       "L 146.842912 210.911534 \n",
       "L 147.080865 210.283102 \n",
       "L 147.271227 210.420869 \n",
       "L 147.50918 210.63804 \n",
       "L 147.556771 210.389886 \n",
       "L 147.651952 210.454612 \n",
       "L 147.842315 210.686647 \n",
       "L 148.080268 210.7753 \n",
       "L 148.27063 210.92178 \n",
       "L 148.318221 210.75264 \n",
       "L 148.413402 210.780459 \n",
       "L 148.794127 210.730634 \n",
       "L 148.889308 210.941915 \n",
       "L 148.936899 210.921085 \n",
       "L 148.98449 210.873832 \n",
       "L 149.127261 210.537893 \n",
       "L 149.270033 210.7081 \n",
       "L 149.365215 210.552682 \n",
       "L 149.412805 210.631698 \n",
       "L 149.507986 210.572936 \n",
       "L 149.555577 210.436431 \n",
       "L 149.603168 210.485959 \n",
       "L 149.936302 210.773097 \n",
       "L 150.079074 210.945427 \n",
       "L 150.269436 211.289996 \n",
       "L 150.317027 211.286905 \n",
       "L 150.459799 211.418804 \n",
       "L 150.55498 211.32096 \n",
       "L 150.697752 211.492551 \n",
       "L 150.840524 211.476017 \n",
       "L 150.935705 211.570129 \n",
       "L 151.030886 211.534306 \n",
       "L 151.078477 211.686562 \n",
       "L 151.173658 211.650862 \n",
       "L 151.364021 211.866144 \n",
       "L 151.506792 211.76535 \n",
       "L 151.792336 211.098404 \n",
       "L 151.839927 211.233989 \n",
       "L 151.887517 211.20883 \n",
       "L 152.07788 211.052617 \n",
       "L 152.220652 211.011943 \n",
       "L 152.411014 210.936056 \n",
       "L 152.601377 211.311176 \n",
       "L 152.791739 210.966027 \n",
       "L 152.83933 211.09696 \n",
       "L 152.88692 211.002133 \n",
       "L 152.982102 211.021324 \n",
       "L 153.315236 211.643202 \n",
       "L 153.362826 211.603425 \n",
       "L 153.410417 211.768638 \n",
       "L 153.458008 211.723386 \n",
       "L 153.505598 211.606429 \n",
       "L 153.553189 211.674372 \n",
       "L 153.695961 211.882059 \n",
       "L 153.743551 211.739801 \n",
       "L 153.791142 211.823977 \n",
       "L 153.981505 212.06408 \n",
       "L 154.362229 211.554638 \n",
       "L 154.695364 211.811871 \n",
       "L 154.742954 211.734775 \n",
       "L 154.933317 211.949021 \n",
       "L 155.028498 212.044201 \n",
       "L 155.17127 211.750636 \n",
       "L 155.266451 211.823095 \n",
       "L 155.314042 211.670286 \n",
       "L 155.361632 211.789307 \n",
       "L 155.409223 211.821383 \n",
       "L 155.456814 211.695485 \n",
       "L 155.504404 211.757102 \n",
       "L 155.742357 211.901766 \n",
       "L 155.980311 212.21546 \n",
       "L 156.123082 212.094776 \n",
       "L 156.265854 211.904859 \n",
       "L 156.456217 212.026704 \n",
       "L 156.598989 211.726648 \n",
       "L 156.789351 211.874739 \n",
       "L 156.836942 211.906938 \n",
       "L 157.074895 211.50496 \n",
       "L 157.265257 211.77555 \n",
       "L 157.312848 211.418372 \n",
       "L 157.408029 211.489681 \n",
       "L 157.45562 211.471029 \n",
       "L 157.550801 211.804424 \n",
       "L 157.645982 211.774048 \n",
       "L 157.836345 211.872836 \n",
       "L 157.931526 211.795867 \n",
       "L 158.026707 211.931909 \n",
       "L 158.074298 211.87302 \n",
       "L 158.26466 211.770104 \n",
       "L 158.312251 211.82882 \n",
       "L 158.359841 211.78336 \n",
       "L 158.407432 211.685562 \n",
       "L 158.455023 211.802212 \n",
       "L 158.645385 211.95006 \n",
       "L 158.883338 212.061821 \n",
       "L 158.930929 211.890191 \n",
       "L 158.978519 211.94755 \n",
       "L 159.02611 212.025545 \n",
       "L 159.216473 211.535379 \n",
       "L 159.264063 211.625795 \n",
       "L 159.359244 211.32459 \n",
       "L 159.406835 211.398616 \n",
       "L 159.454426 211.314333 \n",
       "L 159.549607 211.529728 \n",
       "L 159.597197 211.396653 \n",
       "L 159.644788 211.370118 \n",
       "L 159.692379 211.214906 \n",
       "L 159.739969 211.254907 \n",
       "L 160.215876 211.620179 \n",
       "L 160.263466 211.453842 \n",
       "L 160.358647 211.520098 \n",
       "L 160.453829 211.831523 \n",
       "L 160.501419 211.682087 \n",
       "L 160.644191 211.618552 \n",
       "L 160.834554 211.437565 \n",
       "L 160.929735 211.565881 \n",
       "L 161.024916 211.421641 \n",
       "L 161.262869 211.897246 \n",
       "L 161.596003 212.064293 \n",
       "L 161.738775 212.15265 \n",
       "L 161.881547 212.444335 \n",
       "L 161.929138 212.416044 \n",
       "L 162.07191 212.426315 \n",
       "L 162.1195 212.26936 \n",
       "L 162.167091 212.377519 \n",
       "L 162.309863 212.62995 \n",
       "L 162.357453 212.528055 \n",
       "L 162.500225 212.368281 \n",
       "L 162.928541 212.204177 \n",
       "L 163.118903 211.929802 \n",
       "L 163.166494 211.904879 \n",
       "L 163.261675 211.735336 \n",
       "L 163.404447 211.858095 \n",
       "L 163.499628 211.693906 \n",
       "L 163.547219 211.851739 \n",
       "L 163.594809 211.821 \n",
       "L 163.6424 211.746132 \n",
       "L 163.689991 211.8204 \n",
       "L 163.880353 212.13744 \n",
       "L 164.023125 212.514323 \n",
       "L 164.070716 212.493099 \n",
       "L 164.118306 212.410954 \n",
       "L 164.165897 212.558237 \n",
       "L 164.213487 212.460337 \n",
       "L 164.308669 212.373858 \n",
       "L 164.356259 212.430153 \n",
       "L 164.451441 212.571778 \n",
       "L 164.499031 212.438906 \n",
       "L 164.546622 212.52518 \n",
       "L 164.641803 212.662513 \n",
       "L 164.879756 212.765821 \n",
       "L 164.927347 212.560127 \n",
       "L 164.974937 212.677148 \n",
       "L 165.117709 212.843708 \n",
       "L 165.641206 212.584544 \n",
       "L 165.688797 212.674802 \n",
       "L 165.736387 212.58356 \n",
       "L 165.97434 212.605379 \n",
       "L 166.021931 212.486062 \n",
       "L 166.069522 212.619468 \n",
       "L 166.307475 212.789657 \n",
       "L 166.497837 212.546335 \n",
       "L 166.73579 212.682492 \n",
       "L 166.926153 212.806392 \n",
       "L 166.973743 212.810509 \n",
       "L 167.068925 212.95165 \n",
       "L 167.164106 212.721953 \n",
       "L 167.211696 212.838533 \n",
       "L 167.402059 213.139714 \n",
       "L 167.544831 212.924092 \n",
       "L 167.640012 213.173789 \n",
       "L 167.687603 213.158911 \n",
       "L 167.735193 213.083642 \n",
       "L 167.925556 213.567947 \n",
       "L 168.020737 213.604233 \n",
       "L 168.115918 213.741982 \n",
       "L 168.211099 213.533128 \n",
       "L 168.25869 213.564713 \n",
       "L 168.687006 213.813833 \n",
       "L 168.877368 213.950718 \n",
       "L 168.924959 213.860203 \n",
       "L 168.972549 213.684556 \n",
       "L 169.02014 213.810269 \n",
       "L 169.400865 213.761476 \n",
       "L 169.686409 213.252028 \n",
       "L 169.78159 213.348938 \n",
       "L 170.019543 213.424744 \n",
       "L 170.162315 213.173072 \n",
       "L 170.209905 213.252407 \n",
       "L 170.400268 213.356136 \n",
       "L 170.54304 213.133934 \n",
       "L 170.59063 213.132153 \n",
       "L 170.780993 213.313644 \n",
       "L 170.923765 213.309703 \n",
       "L 171.018946 212.889981 \n",
       "L 171.066537 213.022553 \n",
       "L 171.114127 212.949649 \n",
       "L 171.161718 213.030865 \n",
       "L 171.209308 213.050654 \n",
       "L 171.35208 212.869652 \n",
       "L 171.399671 212.783477 \n",
       "L 171.447261 212.831808 \n",
       "L 171.542443 212.897115 \n",
       "L 171.637624 212.643111 \n",
       "L 171.685215 212.677027 \n",
       "L 171.875577 212.869217 \n",
       "L 171.923168 212.864698 \n",
       "L 172.018349 213.015707 \n",
       "L 172.256302 212.441528 \n",
       "L 172.303893 212.280847 \n",
       "L 172.351483 212.420022 \n",
       "L 172.399074 212.511771 \n",
       "L 172.446664 212.398948 \n",
       "L 172.589436 212.189859 \n",
       "L 172.684618 212.38393 \n",
       "L 172.732208 212.559481 \n",
       "L 172.779799 212.521561 \n",
       "L 172.827389 212.468315 \n",
       "L 172.922571 212.655066 \n",
       "L 173.065342 212.513307 \n",
       "L 173.255705 212.841069 \n",
       "L 173.303296 212.794161 \n",
       "L 173.350886 212.697017 \n",
       "L 173.398477 212.774326 \n",
       "L 173.63643 213.005551 \n",
       "L 173.969564 213.7 \n",
       "L 174.017155 213.626339 \n",
       "L 174.159927 213.625098 \n",
       "L 174.350289 213.465115 \n",
       "L 174.635833 213.70596 \n",
       "L 174.683424 213.65164 \n",
       "L 174.731014 213.469092 \n",
       "L 174.778605 213.571336 \n",
       "L 174.826195 213.634634 \n",
       "L 174.873786 213.592933 \n",
       "L 175.016558 213.591605 \n",
       "L 175.15933 213.653004 \n",
       "L 175.349692 213.417786 \n",
       "L 175.444873 213.565569 \n",
       "L 175.587645 213.596597 \n",
       "L 175.682826 213.559663 \n",
       "L 175.778008 213.698057 \n",
       "L 175.825598 213.592677 \n",
       "L 175.92078 213.532837 \n",
       "L 176.063551 213.706139 \n",
       "L 176.206323 213.608517 \n",
       "L 176.253914 213.651327 \n",
       "L 176.301505 213.585318 \n",
       "L 176.396686 213.60961 \n",
       "L 176.587048 213.844884 \n",
       "L 176.72982 213.832075 \n",
       "L 176.825001 213.937669 \n",
       "L 176.872592 213.846042 \n",
       "L 177.110545 213.94292 \n",
       "L 177.158136 213.746393 \n",
       "L 177.205726 213.774451 \n",
       "L 177.396089 214.053275 \n",
       "L 177.586451 213.921976 \n",
       "L 177.776814 213.96808 \n",
       "L 177.871995 213.789202 \n",
       "L 177.919586 213.524524 \n",
       "L 178.014767 213.611892 \n",
       "L 178.205129 213.366867 \n",
       "L 178.25272 213.482509 \n",
       "L 178.538264 213.147058 \n",
       "L 178.585854 213.220525 \n",
       "L 178.681035 213.364458 \n",
       "L 178.823807 213.135393 \n",
       "L 178.918989 213.307308 \n",
       "L 179.01417 213.049679 \n",
       "L 179.06176 213.149828 \n",
       "L 179.156942 213.330157 \n",
       "L 179.204532 213.268466 \n",
       "L 179.680438 213.575416 \n",
       "L 179.870801 213.48081 \n",
       "L 179.918392 213.611369 \n",
       "L 179.965982 213.528993 \n",
       "L 180.061163 213.504077 \n",
       "L 180.251526 213.802805 \n",
       "L 180.441888 213.493247 \n",
       "L 180.632251 213.556445 \n",
       "L 180.679841 213.332626 \n",
       "L 180.775023 213.375885 \n",
       "L 181.108157 213.834545 \n",
       "L 181.203338 213.63501 \n",
       "L 181.250929 213.706213 \n",
       "L 181.393701 213.828887 \n",
       "L 181.631654 214.245914 \n",
       "L 181.726835 214.052483 \n",
       "L 181.869607 214.35712 \n",
       "L 182.059969 214.11594 \n",
       "L 182.155151 214.325363 \n",
       "L 182.297922 213.816881 \n",
       "L 182.678647 214.349618 \n",
       "L 182.773829 214.267795 \n",
       "L 182.821419 214.126696 \n",
       "L 182.86901 214.270302 \n",
       "L 183.202144 214.002436 \n",
       "L 183.249735 214.176276 \n",
       "L 183.297325 213.985785 \n",
       "L 183.344916 213.945321 \n",
       "L 183.392507 214.100159 \n",
       "L 183.440097 214.050173 \n",
       "L 183.67805 213.907294 \n",
       "L 183.868413 214.11037 \n",
       "L 183.916003 214.088208 \n",
       "L 184.153957 214.471533 \n",
       "L 184.39191 214.220551 \n",
       "L 184.4395 214.332499 \n",
       "L 184.487091 214.20804 \n",
       "L 184.677453 213.897366 \n",
       "L 184.725044 213.967929 \n",
       "L 184.867816 214.024813 \n",
       "L 184.962997 213.608235 \n",
       "L 185.010588 213.695217 \n",
       "L 185.058178 213.642652 \n",
       "L 185.105769 213.70636 \n",
       "L 185.343722 214.003812 \n",
       "L 185.391313 213.875015 \n",
       "L 185.581675 213.495335 \n",
       "L 185.676856 213.442111 \n",
       "L 185.867219 213.662475 \n",
       "L 186.152763 213.401705 \n",
       "L 186.581078 213.998768 \n",
       "L 186.72385 213.768292 \n",
       "L 187.104575 214.069988 \n",
       "L 187.199756 213.938836 \n",
       "L 187.247347 214.002952 \n",
       "L 187.294937 214.144243 \n",
       "L 187.342528 214.10306 \n",
       "L 187.53289 213.971613 \n",
       "L 187.580481 214.037368 \n",
       "L 188.008797 214.459893 \n",
       "L 188.056387 214.358862 \n",
       "L 188.199159 214.24749 \n",
       "L 188.437112 214.217186 \n",
       "L 188.675065 214.395419 \n",
       "L 188.722656 214.106449 \n",
       "L 188.770247 214.137503 \n",
       "L 188.960609 214.31223 \n",
       "L 189.626878 214.0378 \n",
       "L 189.674468 214.111133 \n",
       "L 189.722059 214.051277 \n",
       "L 189.76965 213.963854 \n",
       "L 189.81724 214.037967 \n",
       "L 189.960012 214.193542 \n",
       "L 190.007603 214.143545 \n",
       "L 190.340737 214.544569 \n",
       "L 190.388328 214.44019 \n",
       "L 190.483509 214.398211 \n",
       "L 190.626281 214.512957 \n",
       "L 190.721462 214.497436 \n",
       "L 190.911824 214.306045 \n",
       "L 190.959415 214.429979 \n",
       "L 191.007006 214.384402 \n",
       "L 191.102187 214.393943 \n",
       "L 191.34014 214.789867 \n",
       "L 191.387731 214.754431 \n",
       "L 191.482912 214.889684 \n",
       "L 191.530502 214.830838 \n",
       "L 191.673274 214.619802 \n",
       "L 191.863637 214.553237 \n",
       "L 191.958818 214.471076 \n",
       "L 192.196771 214.438422 \n",
       "L 192.577496 214.750513 \n",
       "L 192.720268 214.401455 \n",
       "L 193.005812 214.72643 \n",
       "L 193.053402 214.627821 \n",
       "L 193.100993 214.668125 \n",
       "L 193.243765 214.814487 \n",
       "L 193.529308 214.94184 \n",
       "L 193.576899 214.800807 \n",
       "L 193.62449 214.985069 \n",
       "L 193.719671 214.808267 \n",
       "L 193.767261 214.956627 \n",
       "L 194.052805 215.183121 \n",
       "L 194.195577 214.938245 \n",
       "L 194.43353 214.98725 \n",
       "L 194.481121 214.985861 \n",
       "L 194.528711 214.718991 \n",
       "L 194.623893 214.793129 \n",
       "L 194.671483 214.746296 \n",
       "L 194.766664 214.469617 \n",
       "L 194.814255 214.537687 \n",
       "L 195.337752 215.303902 \n",
       "L 195.432933 215.274115 \n",
       "L 195.623296 214.896585 \n",
       "L 195.766067 215.023283 \n",
       "L 195.813658 214.832416 \n",
       "L 195.861249 214.885726 \n",
       "L 196.051611 215.207846 \n",
       "L 196.194383 215.185512 \n",
       "L 196.337155 215.368312 \n",
       "L 196.527517 214.978304 \n",
       "L 197.288967 215.63522 \n",
       "L 197.431739 215.381368 \n",
       "L 197.622102 215.471931 \n",
       "L 197.812464 215.345548 \n",
       "L 198.050417 215.637055 \n",
       "L 198.145598 215.624672 \n",
       "L 198.28837 215.655162 \n",
       "L 198.335961 215.456852 \n",
       "L 198.383551 215.612415 \n",
       "L 198.526323 215.732605 \n",
       "L 198.811867 215.648362 \n",
       "L 199.002229 215.542439 \n",
       "L 199.192592 215.482822 \n",
       "L 199.620908 215.841731 \n",
       "L 199.716089 215.807619 \n",
       "L 199.763679 215.884678 \n",
       "L 199.81127 215.767689 \n",
       "L 199.954042 215.592879 \n",
       "L 200.001632 215.643401 \n",
       "L 200.144404 215.677373 \n",
       "L 200.191995 215.580843 \n",
       "L 200.239586 215.607924 \n",
       "L 200.287176 215.65377 \n",
       "L 200.429948 215.439272 \n",
       "L 200.715492 215.639947 \n",
       "L 200.905854 215.359328 \n",
       "L 201.048626 215.552595 \n",
       "L 201.238989 215.548787 \n",
       "L 201.33417 215.694389 \n",
       "L 201.524532 215.185595 \n",
       "L 201.619713 215.260276 \n",
       "L 201.667304 215.228431 \n",
       "L 201.714895 214.979087 \n",
       "L 201.762485 215.140883 \n",
       "L 201.857667 215.276681 \n",
       "L 201.905257 215.193627 \n",
       "L 202.09562 214.727252 \n",
       "L 202.190801 214.882679 \n",
       "L 202.714298 215.48723 \n",
       "L 202.761888 215.328568 \n",
       "L 202.90466 215.230387 \n",
       "L 202.999841 215.298986 \n",
       "L 203.142613 215.146058 \n",
       "L 203.285385 215.296234 \n",
       "L 203.380566 215.299594 \n",
       "L 203.523338 215.40349 \n",
       "L 203.66611 215.264847 \n",
       "L 203.713701 215.319607 \n",
       "L 203.761291 215.198804 \n",
       "L 203.808882 215.289513 \n",
       "L 203.904063 215.174608 \n",
       "L 203.951654 215.097474 \n",
       "L 203.999244 215.193548 \n",
       "L 204.237197 215.195813 \n",
       "L 204.332379 215.16421 \n",
       "L 204.42756 215.433293 \n",
       "L 204.475151 215.416971 \n",
       "L 204.855876 215.132199 \n",
       "L 204.903466 215.199978 \n",
       "L 205.046238 214.86878 \n",
       "L 205.093829 214.972422 \n",
       "L 205.141419 214.814103 \n",
       "L 205.18901 214.885444 \n",
       "L 205.2366 214.84315 \n",
       "L 205.284191 214.799222 \n",
       "L 205.474554 215.226688 \n",
       "L 205.617325 215.049948 \n",
       "L 205.855279 215.381432 \n",
       "L 205.99805 215.15328 \n",
       "L 206.283594 215.512082 \n",
       "L 206.331185 215.463999 \n",
       "L 206.473957 215.443501 \n",
       "L 206.569138 215.673305 \n",
       "L 206.664319 215.441146 \n",
       "L 206.71191 215.462746 \n",
       "L 207.045044 215.815638 \n",
       "L 207.140225 215.788011 \n",
       "L 207.568541 215.382654 \n",
       "L 207.616131 215.273562 \n",
       "L 207.663722 215.378131 \n",
       "L 207.901675 215.709447 \n",
       "L 208.092038 215.712146 \n",
       "L 208.139628 215.725486 \n",
       "L 208.234809 215.931886 \n",
       "L 208.2824 215.838199 \n",
       "L 208.425172 216.020364 \n",
       "L 208.615534 215.778503 \n",
       "L 208.663125 215.716701 \n",
       "L 208.710716 215.762298 \n",
       "L 208.758306 215.887388 \n",
       "L 208.805897 215.815905 \n",
       "L 209.091441 215.439207 \n",
       "L 209.139031 215.493329 \n",
       "L 209.186622 215.40765 \n",
       "L 209.329394 215.152746 \n",
       "L 209.472166 215.133411 \n",
       "L 209.710119 215.43022 \n",
       "L 209.948072 215.184485 \n",
       "L 210.090844 215.269544 \n",
       "L 210.138434 215.136342 \n",
       "L 210.186025 215.329547 \n",
       "L 210.233615 215.304388 \n",
       "L 210.328797 215.444776 \n",
       "L 210.376387 215.214233 \n",
       "L 210.423978 215.31258 \n",
       "L 210.709522 215.701022 \n",
       "L 211.042656 215.653012 \n",
       "L 211.280609 215.74082 \n",
       "L 211.3282 215.61181 \n",
       "L 211.423381 215.653923 \n",
       "L 211.470971 215.560317 \n",
       "L 211.518562 215.663869 \n",
       "L 211.756515 215.873168 \n",
       "L 211.899287 215.779082 \n",
       "L 212.08965 215.949389 \n",
       "L 212.184831 215.960429 \n",
       "L 212.422784 216.23495 \n",
       "L 213.041462 215.821908 \n",
       "L 213.136643 215.927216 \n",
       "L 213.231824 215.773294 \n",
       "L 213.279415 215.837548 \n",
       "L 213.422187 216.035991 \n",
       "L 213.66014 216.356701 \n",
       "L 213.898093 216.190188 \n",
       "L 213.945684 216.311244 \n",
       "L 213.993274 216.229763 \n",
       "L 214.088455 215.884417 \n",
       "L 214.136046 215.896803 \n",
       "L 214.183637 215.924034 \n",
       "L 214.278818 215.709392 \n",
       "L 214.326409 215.748202 \n",
       "L 214.42159 215.889684 \n",
       "L 214.46918 215.87279 \n",
       "L 214.659543 216.111639 \n",
       "L 214.707134 215.995037 \n",
       "L 214.754724 216.044212 \n",
       "L 214.849905 216.087776 \n",
       "L 214.897496 215.827531 \n",
       "L 214.945087 215.924311 \n",
       "L 215.040268 216.030294 \n",
       "L 215.135449 215.908016 \n",
       "L 215.18304 215.950273 \n",
       "L 215.325812 216.097323 \n",
       "L 215.468583 216.017285 \n",
       "L 215.563765 215.851888 \n",
       "L 215.754127 216.049557 \n",
       "L 216.087261 216.176688 \n",
       "L 216.134852 216.287972 \n",
       "L 216.182443 216.14984 \n",
       "L 216.658349 216.308961 \n",
       "L 216.705939 216.185829 \n",
       "L 216.75353 216.297713 \n",
       "L 216.943893 216.211888 \n",
       "L 217.277027 216.471819 \n",
       "L 217.562571 216.526168 \n",
       "L 217.610161 216.304084 \n",
       "L 217.657752 216.340677 \n",
       "L 217.800524 216.443959 \n",
       "L 217.848114 216.302191 \n",
       "L 217.895705 216.388132 \n",
       "L 218.133658 216.636376 \n",
       "L 218.27643 216.460153 \n",
       "L 218.324021 216.54142 \n",
       "L 218.514383 216.651968 \n",
       "L 218.704745 216.342726 \n",
       "L 218.752336 216.234995 \n",
       "L 218.799927 216.342449 \n",
       "L 218.942699 216.343444 \n",
       "L 219.133061 216.623055 \n",
       "L 219.180652 216.544474 \n",
       "L 219.228242 216.595421 \n",
       "L 219.561377 216.63018 \n",
       "L 219.751739 216.635544 \n",
       "L 219.84692 216.855828 \n",
       "L 219.894511 216.766085 \n",
       "L 220.418008 216.876415 \n",
       "L 220.56078 216.677616 \n",
       "L 220.751142 216.876929 \n",
       "L 220.893914 216.937841 \n",
       "L 221.131867 216.631184 \n",
       "L 221.274639 216.830628 \n",
       "L 221.465001 216.501372 \n",
       "L 221.512592 216.58533 \n",
       "L 221.560183 216.49944 \n",
       "L 221.702954 216.551622 \n",
       "L 221.750545 216.343388 \n",
       "L 221.798136 216.469163 \n",
       "L 222.13127 216.755897 \n",
       "L 222.274042 216.607412 \n",
       "L 222.464404 216.714756 \n",
       "L 222.559586 216.338717 \n",
       "L 222.607176 216.369779 \n",
       "L 222.702357 216.404068 \n",
       "L 222.845129 216.719639 \n",
       "L 222.89272 216.655392 \n",
       "L 223.035492 216.683057 \n",
       "L 223.416217 216.816709 \n",
       "L 223.558989 216.740209 \n",
       "L 223.606579 216.830069 \n",
       "L 223.65417 216.632185 \n",
       "L 223.70176 216.653834 \n",
       "L 223.749351 216.737867 \n",
       "L 223.892123 216.505368 \n",
       "L 224.034895 216.70809 \n",
       "L 224.082485 216.679818 \n",
       "L 224.177667 216.149796 \n",
       "L 224.225257 216.163843 \n",
       "L 224.368029 216.307847 \n",
       "L 224.701163 216.219377 \n",
       "L 224.843935 216.357484 \n",
       "L 224.939116 216.276458 \n",
       "L 225.034298 216.399323 \n",
       "L 225.081888 216.292907 \n",
       "L 225.129479 216.388579 \n",
       "L 225.272251 216.48449 \n",
       "L 225.415023 216.176751 \n",
       "L 225.510204 216.439275 \n",
       "L 225.557795 216.379807 \n",
       "L 225.652976 216.321626 \n",
       "L 225.795748 216.449331 \n",
       "L 225.98611 215.949613 \n",
       "L 226.033701 216.127517 \n",
       "L 226.176473 216.12152 \n",
       "L 226.462016 215.791081 \n",
       "L 226.604788 215.805143 \n",
       "L 226.652379 215.830697 \n",
       "L 226.699969 215.678355 \n",
       "L 226.74756 215.770394 \n",
       "L 226.842741 215.817138 \n",
       "L 227.033104 215.67454 \n",
       "L 227.271057 215.81317 \n",
       "L 227.318647 215.581153 \n",
       "L 227.413829 215.641272 \n",
       "L 227.746963 215.679932 \n",
       "L 227.842144 215.5489 \n",
       "L 227.889735 215.587033 \n",
       "L 228.032507 215.768095 \n",
       "L 228.080097 215.736069 \n",
       "L 228.127688 215.405908 \n",
       "L 228.175279 215.472565 \n",
       "L 228.365641 215.586191 \n",
       "L 228.413232 215.393149 \n",
       "L 228.460822 215.456569 \n",
       "L 228.793957 215.969339 \n",
       "L 228.841547 215.884136 \n",
       "L 228.889138 215.815419 \n",
       "L 228.936728 215.854869 \n",
       "L 229.0795 216.028945 \n",
       "L 229.222272 216.266391 \n",
       "L 229.269863 216.110218 \n",
       "L 229.365044 216.177402 \n",
       "L 229.412635 216.160623 \n",
       "L 229.602997 216.364626 \n",
       "L 229.650588 216.182193 \n",
       "L 229.698178 216.281114 \n",
       "L 229.888541 216.384714 \n",
       "L 229.936131 216.296814 \n",
       "L 229.983722 216.356473 \n",
       "L 230.269266 216.446761 \n",
       "L 230.412038 216.399833 \n",
       "L 230.554809 216.541327 \n",
       "L 230.649991 216.40467 \n",
       "L 230.697581 216.472706 \n",
       "L 230.983125 216.666161 \n",
       "L 231.173487 216.384181 \n",
       "L 231.934937 216.768865 \n",
       "L 232.030119 216.753558 \n",
       "L 232.315662 217.267358 \n",
       "L 232.458434 217.176281 \n",
       "L 232.506025 217.14501 \n",
       "L 232.601206 216.938556 \n",
       "L 232.648797 216.952546 \n",
       "L 232.88675 217.107243 \n",
       "L 233.172293 216.64359 \n",
       "L 233.219884 216.673099 \n",
       "L 233.362656 216.846545 \n",
       "L 233.505428 216.591488 \n",
       "L 233.69579 216.74352 \n",
       "L 233.838562 216.536134 \n",
       "L 233.886153 216.564913 \n",
       "L 233.981334 216.702559 \n",
       "L 234.028925 216.585552 \n",
       "L 234.076515 216.665163 \n",
       "L 234.40965 217.028834 \n",
       "L 234.504831 216.7534 \n",
       "L 234.552421 216.816233 \n",
       "L 234.600012 216.873893 \n",
       "L 234.647603 216.755109 \n",
       "L 234.695193 216.790667 \n",
       "L 234.837965 216.924901 \n",
       "L 235.028328 216.408989 \n",
       "L 235.123509 216.626223 \n",
       "L 235.21869 216.54305 \n",
       "L 235.266281 216.341766 \n",
       "L 235.361462 216.3696 \n",
       "L 235.456643 216.409677 \n",
       "L 235.504234 216.33842 \n",
       "L 235.551824 216.466743 \n",
       "L 235.647006 216.543312 \n",
       "L 235.694596 216.478958 \n",
       "L 235.742187 216.347612 \n",
       "L 235.789777 216.460418 \n",
       "L 235.932549 216.493035 \n",
       "L 236.122912 216.702164 \n",
       "L 236.218093 216.731823 \n",
       "L 236.313274 216.613643 \n",
       "L 236.360865 216.720522 \n",
       "L 236.646409 217.068303 \n",
       "L 236.78918 216.765491 \n",
       "L 236.836771 216.801545 \n",
       "L 237.027134 216.995107 \n",
       "L 237.122315 216.842627 \n",
       "L 237.312677 217.168619 \n",
       "L 237.883765 217.523302 \n",
       "L 237.978946 217.619855 \n",
       "L 238.026537 217.568389 \n",
       "L 238.121718 217.706265 \n",
       "L 238.169308 217.632686 \n",
       "L 238.359671 217.344903 \n",
       "L 239.025939 216.963523 \n",
       "L 239.263893 217.37949 \n",
       "L 239.406664 217.217288 \n",
       "L 239.644618 217.086264 \n",
       "L 239.83498 217.112327 \n",
       "L 239.930161 217.170085 \n",
       "L 239.977752 216.963059 \n",
       "L 240.025342 217.086556 \n",
       "L 240.168114 217.290353 \n",
       "L 240.215705 217.050108 \n",
       "L 240.263296 217.10722 \n",
       "L 240.358477 217.215502 \n",
       "L 240.406067 217.168437 \n",
       "L 240.548839 216.776306 \n",
       "L 240.691611 216.862883 \n",
       "L 240.786792 216.727426 \n",
       "L 240.977155 217.034117 \n",
       "L 241.024745 216.857373 \n",
       "L 241.072336 216.941018 \n",
       "L 241.262699 216.955005 \n",
       "L 241.310289 216.832226 \n",
       "L 241.35788 216.9902 \n",
       "L 241.500652 216.983638 \n",
       "L 241.548242 216.987593 \n",
       "L 241.738605 216.755206 \n",
       "L 241.928967 216.910756 \n",
       "L 242.024148 216.740641 \n",
       "L 242.071739 216.846366 \n",
       "L 242.452464 217.223493 \n",
       "L 242.547645 217.233137 \n",
       "L 242.738008 217.423223 \n",
       "L 242.88078 217.465295 \n",
       "L 242.92837 217.267911 \n",
       "L 242.975961 217.327869 \n",
       "L 243.404276 217.757259 \n",
       "L 243.451867 217.706089 \n",
       "L 243.547048 217.577704 \n",
       "L 243.594639 217.651007 \n",
       "L 243.642229 217.591116 \n",
       "L 243.68982 217.727285 \n",
       "L 243.737411 217.53138 \n",
       "L 243.785001 217.400195 \n",
       "L 243.832592 217.507785 \n",
       "L 244.213317 217.548759 \n",
       "L 244.308498 217.343287 \n",
       "L 244.403679 217.397635 \n",
       "L 244.498861 217.335834 \n",
       "L 244.546451 217.37167 \n",
       "L 244.784404 217.604603 \n",
       "L 244.831995 217.546869 \n",
       "L 244.879586 217.40931 \n",
       "L 244.927176 217.456359 \n",
       "L 245.117539 217.474943 \n",
       "L 245.165129 217.425548 \n",
       "L 245.21272 217.529943 \n",
       "L 245.498264 217.28887 \n",
       "L 245.593445 217.049533 \n",
       "L 245.641035 217.146276 \n",
       "L 245.831398 217.379257 \n",
       "L 245.878989 217.33977 \n",
       "L 245.926579 217.187823 \n",
       "L 246.02176 217.239732 \n",
       "L 246.164532 217.329233 \n",
       "L 246.212123 217.276283 \n",
       "L 246.259713 217.372816 \n",
       "L 246.402485 217.468523 \n",
       "L 246.545257 217.498721 \n",
       "L 246.925982 217.266658 \n",
       "L 247.116345 217.399683 \n",
       "L 247.163935 217.28501 \n",
       "L 247.211526 217.460707 \n",
       "L 247.306707 217.388564 \n",
       "L 247.830204 217.295522 \n",
       "L 247.972976 217.318633 \n",
       "L 248.210929 217.413318 \n",
       "L 248.258519 217.314105 \n",
       "L 248.30611 217.397963 \n",
       "L 248.401291 217.581404 \n",
       "L 248.448882 217.509962 \n",
       "L 248.686835 217.385613 \n",
       "L 248.782016 217.625874 \n",
       "L 248.829607 217.52574 \n",
       "L 248.877197 217.442871 \n",
       "L 248.924788 217.515239 \n",
       "L 249.305513 217.658266 \n",
       "L 249.448285 217.455739 \n",
       "L 249.82901 217.519185 \n",
       "L 249.8766 217.483132 \n",
       "L 249.924191 217.568096 \n",
       "L 250.066963 217.645451 \n",
       "L 250.209735 217.870658 \n",
       "L 250.257325 217.840979 \n",
       "L 250.447688 217.946182 \n",
       "L 250.495279 217.915837 \n",
       "L 250.59046 218.081751 \n",
       "L 250.828413 217.794039 \n",
       "L 250.923594 217.871649 \n",
       "L 251.018775 218.106508 \n",
       "L 251.161547 217.92591 \n",
       "L 251.304319 217.962208 \n",
       "L 251.3995 217.755566 \n",
       "L 251.494682 217.908004 \n",
       "L 251.542272 217.97606 \n",
       "L 251.637453 217.801363 \n",
       "L 251.685044 217.818926 \n",
       "L 251.732635 217.885587 \n",
       "L 251.780225 217.783211 \n",
       "L 251.875406 217.881547 \n",
       "L 252.018178 217.645116 \n",
       "L 252.208541 217.884967 \n",
       "L 252.256131 217.762853 \n",
       "L 252.303722 217.827575 \n",
       "L 252.969991 217.914229 \n",
       "L 253.065172 218.110918 \n",
       "L 253.303125 217.621716 \n",
       "L 253.350716 217.542427 \n",
       "L 253.398306 217.580839 \n",
       "L 253.493487 217.756247 \n",
       "L 253.541078 217.696343 \n",
       "L 253.588669 217.598148 \n",
       "L 253.636259 217.684677 \n",
       "L 253.969394 217.639725 \n",
       "L 254.016984 217.5375 \n",
       "L 254.064575 217.616772 \n",
       "L 254.254937 217.729533 \n",
       "L 254.4453 218.052094 \n",
       "L 254.49289 217.844213 \n",
       "L 254.588072 217.867874 \n",
       "L 254.730844 217.950371 \n",
       "L 254.921206 217.760543 \n",
       "L 255.777837 218.302932 \n",
       "L 255.9682 218.246585 \n",
       "L 256.158562 217.892628 \n",
       "L 256.206153 217.948554 \n",
       "L 256.301334 218.09699 \n",
       "L 256.348925 218.065856 \n",
       "L 256.396515 218.033936 \n",
       "L 256.444106 218.126141 \n",
       "L 256.539287 218.295707 \n",
       "L 256.586878 218.185609 \n",
       "L 256.72965 218.167486 \n",
       "L 256.872421 218.241067 \n",
       "L 257.53869 218.243923 \n",
       "L 257.586281 218.318016 \n",
       "L 257.633871 218.280797 \n",
       "L 257.776643 217.97075 \n",
       "L 257.967006 218.10158 \n",
       "L 258.062187 217.944035 \n",
       "L 258.204959 218.191243 \n",
       "L 258.252549 218.069361 \n",
       "L 258.347731 218.107928 \n",
       "L 258.490502 218.24802 \n",
       "L 258.538093 218.126428 \n",
       "L 258.585684 218.209812 \n",
       "L 258.776046 218.387538 \n",
       "L 258.918818 218.367075 \n",
       "L 259.06159 218.438448 \n",
       "L 259.204362 218.154635 \n",
       "L 259.251952 218.174209 \n",
       "L 259.442315 218.4086 \n",
       "L 259.489905 218.232636 \n",
       "L 259.537496 218.357436 \n",
       "L 259.632677 218.426268 \n",
       "L 259.82304 218.319556 \n",
       "L 260.108583 218.185968 \n",
       "L 260.251355 218.13023 \n",
       "L 260.441718 218.038551 \n",
       "L 260.63208 217.737264 \n",
       "L 260.679671 217.755984 \n",
       "L 260.727261 217.539934 \n",
       "L 260.774852 217.634277 \n",
       "L 260.917624 217.703479 \n",
       "L 261.107986 217.375536 \n",
       "L 261.155577 217.350788 \n",
       "L 261.298349 217.549767 \n",
       "L 261.345939 217.408854 \n",
       "L 261.39353 217.506001 \n",
       "L 261.488711 217.447515 \n",
       "L 261.536302 217.167163 \n",
       "L 261.583893 217.256759 \n",
       "L 261.679074 217.372396 \n",
       "L 261.726664 217.337934 \n",
       "L 261.821846 217.277482 \n",
       "L 262.012208 217.660971 \n",
       "L 262.15498 217.397998 \n",
       "L 262.535705 217.82451 \n",
       "L 262.583296 217.774593 \n",
       "L 262.821249 217.758859 \n",
       "L 262.868839 217.908428 \n",
       "L 262.91643 217.722148 \n",
       "L 263.154383 217.700628 \n",
       "L 263.392336 218.067037 \n",
       "L 263.487517 217.894594 \n",
       "L 263.67788 217.690054 \n",
       "L 263.72547 217.779702 \n",
       "L 263.868242 217.492878 \n",
       "L 264.153786 217.658258 \n",
       "L 264.201377 217.819248 \n",
       "L 264.248967 217.751909 \n",
       "L 264.296558 217.686971 \n",
       "L 264.344148 217.764382 \n",
       "L 264.724873 217.961912 \n",
       "L 264.820055 217.720682 \n",
       "L 264.867645 217.741228 \n",
       "L 264.962826 217.802324 \n",
       "L 265.058008 218.022968 \n",
       "L 265.105598 217.999119 \n",
       "L 265.20078 217.76117 \n",
       "L 265.24837 217.818804 \n",
       "L 265.533914 217.92569 \n",
       "L 265.676686 217.654256 \n",
       "L 265.724276 217.721606 \n",
       "L 265.962229 218.020883 \n",
       "L 266.105001 217.780074 \n",
       "L 266.342954 218.219423 \n",
       "L 266.438136 218.105942 \n",
       "L 266.723679 218.352607 \n",
       "L 267.627901 218.396763 \n",
       "L 267.723082 218.221467 \n",
       "L 267.770673 218.282311 \n",
       "L 268.151398 218.686271 \n",
       "L 268.246579 218.565543 \n",
       "L 268.389351 218.795039 \n",
       "L 268.436942 218.708362 \n",
       "L 268.484532 218.791132 \n",
       "L 268.579713 218.899083 \n",
       "L 268.627304 218.876206 \n",
       "L 268.912848 218.840916 \n",
       "L 269.008029 218.984242 \n",
       "L 269.05562 218.876006 \n",
       "L 269.198392 218.819486 \n",
       "L 269.293573 218.482872 \n",
       "L 269.341163 218.536718 \n",
       "L 269.436345 218.737484 \n",
       "L 269.483935 218.679645 \n",
       "L 269.531526 218.552871 \n",
       "L 269.579116 218.632455 \n",
       "L 269.912251 218.796879 \n",
       "L 270.055023 218.805258 \n",
       "L 270.102613 218.868982 \n",
       "L 270.150204 218.733726 \n",
       "L 270.197795 218.856332 \n",
       "L 270.245385 218.997589 \n",
       "L 270.292976 218.868914 \n",
       "L 270.62611 218.89523 \n",
       "L 270.673701 218.846033 \n",
       "L 270.721291 218.914496 \n",
       "L 270.911654 218.931285 \n",
       "L 271.054426 218.853062 \n",
       "L 271.197197 218.874079 \n",
       "L 271.339969 218.538069 \n",
       "L 271.482741 218.150203 \n",
       "L 271.673104 218.37088 \n",
       "L 271.958647 217.897616 \n",
       "L 272.006238 218.042063 \n",
       "L 272.053829 217.928602 \n",
       "L 272.14901 217.624862 \n",
       "L 272.1966 217.649112 \n",
       "L 272.291782 217.721099 \n",
       "L 272.434554 217.681647 \n",
       "L 272.577325 217.88885 \n",
       "L 272.624916 217.738753 \n",
       "L 272.672507 217.860876 \n",
       "L 272.720097 217.919656 \n",
       "L 272.767688 217.845899 \n",
       "L 272.862869 217.670873 \n",
       "L 272.95805 217.831308 \n",
       "L 273.243594 217.962137 \n",
       "L 273.291185 217.720127 \n",
       "L 273.338775 217.794885 \n",
       "L 273.576728 218.127275 \n",
       "L 273.67191 218.111355 \n",
       "L 273.814682 218.092894 \n",
       "L 274.005044 218.390509 \n",
       "L 274.052635 218.277424 \n",
       "L 274.100225 218.348872 \n",
       "L 274.338178 218.403704 \n",
       "L 274.48095 218.414279 \n",
       "L 274.861675 218.686859 \n",
       "L 274.909266 218.578455 \n",
       "L 274.956856 218.645787 \n",
       "L 275.337581 219.122337 \n",
       "L 275.385172 219.061692 \n",
       "L 275.432763 218.966934 \n",
       "L 275.480353 219.008895 \n",
       "L 275.623125 219.008724 \n",
       "L 275.718306 218.921925 \n",
       "L 275.765897 218.957401 \n",
       "L 275.956259 219.100295 \n",
       "L 276.00385 219.091448 \n",
       "L 276.051441 218.802689 \n",
       "L 276.146622 218.878653 \n",
       "L 276.241803 218.986269 \n",
       "L 276.289394 218.866715 \n",
       "L 276.384575 218.767387 \n",
       "L 276.479756 218.669241 \n",
       "L 276.527347 218.750365 \n",
       "L 276.717709 219.04468 \n",
       "L 276.7653 219.007149 \n",
       "L 277.050844 218.8066 \n",
       "L 277.241206 218.246467 \n",
       "L 277.479159 218.310354 \n",
       "L 277.57434 218.124267 \n",
       "L 277.621931 218.234353 \n",
       "L 277.669522 218.309609 \n",
       "L 277.717112 218.234627 \n",
       "L 278.050247 218.301058 \n",
       "L 278.097837 218.429918 \n",
       "L 278.145428 218.373447 \n",
       "L 278.33579 218.381904 \n",
       "L 278.621334 218.628896 \n",
       "L 278.764106 218.594671 \n",
       "L 278.954468 218.759794 \n",
       "L 279.335193 218.807654 \n",
       "L 279.382784 218.881593 \n",
       "L 279.430374 218.815945 \n",
       "L 279.620737 218.725046 \n",
       "L 279.715918 218.535479 \n",
       "L 279.763509 218.615262 \n",
       "L 280.239415 218.894938 \n",
       "L 280.572549 218.349732 \n",
       "L 280.715321 218.482988 \n",
       "L 280.810502 218.404251 \n",
       "L 280.858093 218.463988 \n",
       "L 281.143637 218.781158 \n",
       "L 281.191227 218.729916 \n",
       "L 281.238818 218.730118 \n",
       "L 281.38159 218.516738 \n",
       "L 281.619543 218.421258 \n",
       "L 281.762315 218.335762 \n",
       "L 281.952677 218.485795 \n",
       "L 282.000268 218.276199 \n",
       "L 282.047858 218.332743 \n",
       "L 282.19063 218.562755 \n",
       "L 282.333402 218.419037 \n",
       "L 282.380993 218.503692 \n",
       "L 282.476174 218.55285 \n",
       "L 282.761718 218.839097 \n",
       "L 282.856899 218.678216 \n",
       "L 282.90449 218.793252 \n",
       "L 283.047261 218.880312 \n",
       "L 283.237624 218.766113 \n",
       "L 283.380396 218.646068 \n",
       "L 283.570758 218.725987 \n",
       "L 283.665939 218.781945 \n",
       "L 283.71353 218.665536 \n",
       "L 283.761121 218.708229 \n",
       "L 283.903893 218.943153 \n",
       "L 283.951483 218.902884 \n",
       "L 284.046664 218.726813 \n",
       "L 284.094255 218.777743 \n",
       "L 284.189436 218.766667 \n",
       "L 284.427389 218.57559 \n",
       "L 284.47498 218.692714 \n",
       "L 284.522571 218.618404 \n",
       "L 284.617752 218.720583 \n",
       "L 284.808114 218.873272 \n",
       "L 284.855705 218.832993 \n",
       "L 284.903296 218.892389 \n",
       "L 284.950886 218.972683 \n",
       "L 284.998477 218.811186 \n",
       "L 285.093658 218.841404 \n",
       "L 285.141249 218.726156 \n",
       "L 285.188839 218.760017 \n",
       "L 285.807517 219.21584 \n",
       "L 286.426195 219.221579 \n",
       "L 286.568967 219.359837 \n",
       "L 286.711739 219.227952 \n",
       "L 286.75933 219.299238 \n",
       "L 286.949692 219.280481 \n",
       "L 287.044873 219.435855 \n",
       "L 287.187645 219.27556 \n",
       "L 287.330417 219.286593 \n",
       "L 287.56837 218.937387 \n",
       "L 287.663551 218.734654 \n",
       "L 287.758733 218.843538 \n",
       "L 288.091867 219.193875 \n",
       "L 288.32982 219.466909 \n",
       "L 288.472592 219.1695 \n",
       "L 288.520183 219.299493 \n",
       "L 288.567773 219.205498 \n",
       "L 288.615364 219.141468 \n",
       "L 288.662954 219.19964 \n",
       "L 288.758136 219.313461 \n",
       "L 288.805726 219.27048 \n",
       "L 288.853317 219.115007 \n",
       "L 288.900908 219.17419 \n",
       "L 289.043679 219.262943 \n",
       "L 289.09127 219.169986 \n",
       "L 289.138861 219.12162 \n",
       "L 289.186451 219.231902 \n",
       "L 289.234042 219.107731 \n",
       "L 289.329223 219.04017 \n",
       "L 289.471995 219.05338 \n",
       "L 289.709948 219.191925 \n",
       "L 289.805129 219.18141 \n",
       "L 289.85272 219.243147 \n",
       "L 289.900311 219.195445 \n",
       "L 290.138264 219.081179 \n",
       "L 290.233445 219.162733 \n",
       "L 290.281035 219.004167 \n",
       "L 290.376217 219.051549 \n",
       "L 290.518989 218.98515 \n",
       "L 290.61417 219.067758 \n",
       "L 290.709351 219.056699 \n",
       "L 290.756942 218.979816 \n",
       "L 290.804532 219.015869 \n",
       "L 290.852123 219.069596 \n",
       "L 290.899713 219.021255 \n",
       "L 290.994895 218.816552 \n",
       "L 291.090076 218.923323 \n",
       "L 291.280438 219.008315 \n",
       "L 291.565982 218.57835 \n",
       "L 291.851526 218.818475 \n",
       "L 292.041888 218.427437 \n",
       "L 292.13707 218.595438 \n",
       "L 292.18466 218.436786 \n",
       "L 292.279841 218.484733 \n",
       "L 292.422613 218.367295 \n",
       "L 292.470204 218.416021 \n",
       "L 292.517795 218.230834 \n",
       "L 292.565385 218.276412 \n",
       "L 292.660566 218.477578 \n",
       "L 292.708157 218.37607 \n",
       "L 292.755748 218.122363 \n",
       "L 292.803338 218.187065 \n",
       "L 293.041291 218.463507 \n",
       "L 293.279244 218.200969 \n",
       "L 293.326835 218.254295 \n",
       "L 293.517197 218.47332 \n",
       "L 293.564788 218.604758 \n",
       "L 293.612379 218.465838 \n",
       "L 293.755151 218.58787 \n",
       "L 293.897922 218.761608 \n",
       "L 293.945513 218.501908 \n",
       "L 293.993104 218.595132 \n",
       "L 294.135876 218.73559 \n",
       "L 294.278647 218.467607 \n",
       "L 294.564191 218.065887 \n",
       "L 294.754554 218.318108 \n",
       "L 294.849735 218.17955 \n",
       "L 294.944916 218.307508 \n",
       "L 295.040097 218.480055 \n",
       "L 295.135279 218.396731 \n",
       "L 295.27805 218.597872 \n",
       "L 295.563594 218.817201 \n",
       "L 295.801547 218.674382 \n",
       "L 295.849138 218.508736 \n",
       "L 295.896728 218.596568 \n",
       "L 296.467816 219.214143 \n",
       "L 296.515406 219.15392 \n",
       "L 296.705769 218.927317 \n",
       "L 296.80095 219.007142 \n",
       "L 297.038903 219.115208 \n",
       "L 297.5624 219.357853 \n",
       "L 297.705172 219.393227 \n",
       "L 297.752763 219.463564 \n",
       "L 297.800353 219.361895 \n",
       "L 297.895534 219.430446 \n",
       "L 298.228669 219.583604 \n",
       "L 298.419031 219.773622 \n",
       "L 298.514212 219.70304 \n",
       "L 298.656984 219.574919 \n",
       "L 298.894937 219.616471 \n",
       "L 299.13289 219.657265 \n",
       "L 299.370844 219.918783 \n",
       "L 299.466025 219.627562 \n",
       "L 299.513615 219.651184 \n",
       "L 299.656387 219.67695 \n",
       "L 299.799159 219.353905 \n",
       "L 299.84675 219.380196 \n",
       "L 299.989522 219.570335 \n",
       "L 300.084703 219.390937 \n",
       "L 300.132293 219.451851 \n",
       "L 300.370247 219.002349 \n",
       "L 300.417837 219.071362 \n",
       "L 300.6082 219.033707 \n",
       "L 300.798562 218.802106 \n",
       "L 300.988925 218.941579 \n",
       "L 301.464831 218.884356 \n",
       "L 301.560012 218.768082 \n",
       "L 301.607603 218.881219 \n",
       "L 301.655193 218.931001 \n",
       "L 301.797965 218.758499 \n",
       "L 301.893146 218.877279 \n",
       "L 301.940737 218.690386 \n",
       "L 301.988328 218.728832 \n",
       "L 302.321462 219.274401 \n",
       "L 302.464234 219.044377 \n",
       "L 302.844959 219.365018 \n",
       "L 302.892549 219.372261 \n",
       "L 302.987731 219.577395 \n",
       "L 303.178093 219.304992 \n",
       "L 303.320865 219.201692 \n",
       "L 303.511227 219.150602 \n",
       "L 303.606409 219.309886 \n",
       "L 303.70159 219.024941 \n",
       "L 303.74918 219.071855 \n",
       "L 303.796771 219.140048 \n",
       "L 303.844362 219.083141 \n",
       "L 303.987134 218.997571 \n",
       "L 304.177496 219.116679 \n",
       "L 304.225087 219.004933 \n",
       "L 304.272677 219.055597 \n",
       "L 304.320268 219.105871 \n",
       "L 304.367858 218.957222 \n",
       "L 304.415449 219.030759 \n",
       "L 304.796174 219.295124 \n",
       "L 304.843765 219.158802 \n",
       "L 304.891355 219.197774 \n",
       "L 304.938946 219.242322 \n",
       "L 305.081718 219.147521 \n",
       "L 305.176899 219.236111 \n",
       "L 305.27208 218.80253 \n",
       "L 305.367261 218.863727 \n",
       "L 305.414852 218.926 \n",
       "L 305.462443 218.883705 \n",
       "L 305.747986 218.813008 \n",
       "L 306.366664 219.463291 \n",
       "L 306.461846 219.482701 \n",
       "L 306.557027 219.533037 \n",
       "L 306.604618 219.382508 \n",
       "L 306.652208 219.497692 \n",
       "L 306.842571 219.632801 \n",
       "L 306.985342 219.600356 \n",
       "L 307.080524 219.631054 \n",
       "L 307.270886 219.162267 \n",
       "L 307.413658 219.154723 \n",
       "L 308.270289 219.005377 \n",
       "L 308.413061 219.220936 \n",
       "L 308.603424 218.953246 \n",
       "L 308.984148 219.122551 \n",
       "L 309.031739 219.0319 \n",
       "L 309.07933 219.103167 \n",
       "L 309.317283 219.339095 \n",
       "L 309.460055 219.608657 \n",
       "L 309.507645 219.526518 \n",
       "L 309.793189 219.180086 \n",
       "L 309.84078 219.321658 \n",
       "L 309.88837 219.169153 \n",
       "L 309.935961 219.044506 \n",
       "L 310.031142 219.088273 \n",
       "L 310.173914 219.090632 \n",
       "L 310.269095 218.897962 \n",
       "L 310.507048 219.206247 \n",
       "L 310.840183 219.01993 \n",
       "L 311.078136 219.260335 \n",
       "L 311.554042 219.278575 \n",
       "L 311.934767 219.651326 \n",
       "L 312.077539 219.523617 \n",
       "L 312.410673 219.940651 \n",
       "L 312.553445 219.843012 \n",
       "L 312.98176 220.254352 \n",
       "L 313.029351 220.189243 \n",
       "L 313.076942 220.297413 \n",
       "L 313.172123 220.412403 \n",
       "L 313.219713 220.369252 \n",
       "L 313.648029 220.163824 \n",
       "L 313.69562 220.198913 \n",
       "L 313.74321 220.026217 \n",
       "L 313.838392 220.071682 \n",
       "L 314.028754 219.98422 \n",
       "L 314.123935 220.086646 \n",
       "L 314.171526 219.994908 \n",
       "L 314.361888 219.953669 \n",
       "L 314.742613 220.138276 \n",
       "L 314.885385 220.111437 \n",
       "L 314.980566 220.221486 \n",
       "L 315.028157 220.081751 \n",
       "L 315.123338 219.873121 \n",
       "L 315.170929 219.936676 \n",
       "L 315.26611 219.875174 \n",
       "L 315.408882 219.784049 \n",
       "L 315.504063 219.932883 \n",
       "L 315.551654 219.897864 \n",
       "L 315.742016 219.755295 \n",
       "L 315.789607 219.746549 \n",
       "L 315.979969 219.507906 \n",
       "L 316.265513 219.796909 \n",
       "L 316.408285 219.73316 \n",
       "L 316.598647 219.454816 \n",
       "L 316.646238 219.44799 \n",
       "L 316.78901 219.71257 \n",
       "L 316.8366 219.655292 \n",
       "L 317.074554 219.436286 \n",
       "L 317.312507 219.390134 \n",
       "L 317.455279 219.219793 \n",
       "L 317.931185 219.431206 \n",
       "L 318.121547 219.287914 \n",
       "L 318.216728 219.479364 \n",
       "L 318.264319 219.437072 \n",
       "L 318.31191 219.464619 \n",
       "L 318.502272 219.19261 \n",
       "L 318.549863 219.123906 \n",
       "L 318.597453 219.186803 \n",
       "L 318.835406 219.210995 \n",
       "L 319.025769 219.441448 \n",
       "L 319.12095 219.300756 \n",
       "L 319.168541 219.361679 \n",
       "L 319.358903 219.177888 \n",
       "L 319.406494 219.244148 \n",
       "L 319.454084 219.197562 \n",
       "L 319.501675 219.180202 \n",
       "L 319.739628 219.479379 \n",
       "L 319.8824 219.520028 \n",
       "L 319.977581 219.593701 \n",
       "L 320.025172 219.561046 \n",
       "L 320.120353 219.431697 \n",
       "L 320.167944 219.457618 \n",
       "L 320.263125 219.668726 \n",
       "L 320.310716 219.630797 \n",
       "L 320.453487 219.574518 \n",
       "L 320.739031 219.764744 \n",
       "L 320.834212 219.91727 \n",
       "L 320.881803 219.86241 \n",
       "L 320.976984 219.775146 \n",
       "L 321.024575 219.833872 \n",
       "L 321.119756 219.460206 \n",
       "L 321.167347 219.531456 \n",
       "L 321.357709 219.527637 \n",
       "L 321.4053 219.617891 \n",
       "L 321.45289 219.571965 \n",
       "L 321.595662 219.538741 \n",
       "L 321.786025 219.695636 \n",
       "L 322.023978 219.732593 \n",
       "L 322.261931 220.103267 \n",
       "L 322.309522 219.814607 \n",
       "L 322.357112 219.870216 \n",
       "L 322.547475 220.052099 \n",
       "L 322.880609 219.713182 \n",
       "L 323.166153 219.757549 \n",
       "L 323.261334 219.658844 \n",
       "L 323.404106 219.75898 \n",
       "L 323.499287 219.61069 \n",
       "L 323.546878 219.708718 \n",
       "L 323.73724 219.801536 \n",
       "L 323.784831 219.593443 \n",
       "L 323.832421 219.730224 \n",
       "L 324.165556 220.065486 \n",
       "L 324.260737 220.169176 \n",
       "L 324.308328 220.221062 \n",
       "L 324.355918 220.168512 \n",
       "L 324.49869 220.110213 \n",
       "L 324.593871 220.107875 \n",
       "L 324.736643 219.890847 \n",
       "L 324.784234 219.952384 \n",
       "L 324.879415 219.640909 \n",
       "L 324.927006 219.710336 \n",
       "L 325.117368 219.583765 \n",
       "L 325.307731 219.742034 \n",
       "L 325.450502 219.654149 \n",
       "L 325.926409 219.233291 \n",
       "L 325.973999 219.316361 \n",
       "L 326.116771 219.475187 \n",
       "L 326.307134 219.740095 \n",
       "L 326.497496 219.766133 \n",
       "L 326.735449 219.600176 \n",
       "L 327.401718 219.631442 \n",
       "L 327.496899 219.544348 \n",
       "L 327.54449 219.637703 \n",
       "L 327.639671 219.36581 \n",
       "L 327.687261 219.430837 \n",
       "L 327.830033 219.317519 \n",
       "L 327.925215 219.354111 \n",
       "L 328.067986 219.506592 \n",
       "L 328.115577 219.359341 \n",
       "L 328.163168 219.419124 \n",
       "L 328.35353 219.528233 \n",
       "L 328.496302 219.50362 \n",
       "L 328.781846 219.825378 \n",
       "L 328.829436 219.730093 \n",
       "L 328.877027 219.757281 \n",
       "L 329.067389 220.085869 \n",
       "L 329.11498 219.914501 \n",
       "L 329.162571 219.982372 \n",
       "L 329.590886 220.347739 \n",
       "L 329.686067 220.421986 \n",
       "L 329.733658 220.363907 \n",
       "L 329.781249 220.405213 \n",
       "L 329.828839 220.44575 \n",
       "L 330.019202 220.237275 \n",
       "L 330.209564 220.259378 \n",
       "L 330.304745 220.349042 \n",
       "L 330.495108 220.477804 \n",
       "L 330.542699 220.528759 \n",
       "L 330.590289 220.470787 \n",
       "L 330.63788 220.359158 \n",
       "L 330.68547 220.411333 \n",
       "L 330.828242 220.532167 \n",
       "L 331.161377 220.330947 \n",
       "L 331.304148 220.51017 \n",
       "L 331.351739 220.46988 \n",
       "L 331.39933 220.429877 \n",
       "L 331.44692 220.500562 \n",
       "L 331.684873 220.396338 \n",
       "L 331.875236 220.374373 \n",
       "L 332.065598 220.385396 \n",
       "L 332.20837 220.364605 \n",
       "L 332.303551 220.20793 \n",
       "L 332.351142 220.223179 \n",
       "L 332.779458 220.342064 \n",
       "L 333.017411 220.150903 \n",
       "L 333.065001 220.258616 \n",
       "L 333.160183 219.924273 \n",
       "L 333.207773 219.971427 \n",
       "L 333.350545 220.180355 \n",
       "L 333.398136 220.087086 \n",
       "L 333.540908 219.992211 \n",
       "L 333.73127 220.112342 \n",
       "L 333.921632 220.040816 \n",
       "L 334.064404 220.240617 \n",
       "L 334.207176 219.951482 \n",
       "L 334.921035 219.89547 \n",
       "L 335.063807 219.843531 \n",
       "L 335.206579 219.81454 \n",
       "L 335.396942 219.779627 \n",
       "L 335.492123 219.777686 \n",
       "L 335.539713 219.822918 \n",
       "L 335.587304 219.762758 \n",
       "L 335.634895 219.716679 \n",
       "L 335.682485 219.802283 \n",
       "L 335.777667 219.825359 \n",
       "L 335.872848 219.628177 \n",
       "L 335.920438 219.645377 \n",
       "L 336.158392 219.759906 \n",
       "L 336.253573 219.659495 \n",
       "L 336.396345 219.846062 \n",
       "L 336.681888 219.813481 \n",
       "L 336.77707 219.625754 \n",
       "L 336.82466 219.716852 \n",
       "L 337.015023 219.828069 \n",
       "L 337.157795 219.946088 \n",
       "L 337.395748 220.153211 \n",
       "L 337.538519 220.052245 \n",
       "L 337.871654 220.111118 \n",
       "L 337.966835 220.048087 \n",
       "L 338.014426 220.087342 \n",
       "L 338.109607 220.09993 \n",
       "L 338.204788 219.595462 \n",
       "L 338.252379 219.628378 \n",
       "L 338.395151 219.622833 \n",
       "L 338.537922 219.55336 \n",
       "L 338.680694 219.6716 \n",
       "L 338.871057 219.394958 \n",
       "L 339.061419 219.484389 \n",
       "L 339.251782 219.477439 \n",
       "L 339.489735 219.079243 \n",
       "L 339.584916 219.154583 \n",
       "L 339.680097 219.279606 \n",
       "L 339.822869 219.097991 \n",
       "L 340.156003 219.167564 \n",
       "L 340.203594 219.085087 \n",
       "L 340.251185 219.183036 \n",
       "L 340.489138 219.228731 \n",
       "L 340.822272 218.972711 \n",
       "L 341.012635 219.294564 \n",
       "L 341.107816 219.208544 \n",
       "L 341.345769 219.549793 \n",
       "L 341.39336 219.507782 \n",
       "L 341.536131 219.73848 \n",
       "L 341.678903 219.683902 \n",
       "L 341.821675 219.751753 \n",
       "L 341.869266 219.79438 \n",
       "L 341.916856 219.696613 \n",
       "L 342.345172 219.744358 \n",
       "L 342.583125 220.008525 \n",
       "L 342.725897 219.973748 \n",
       "L 343.059031 220.011961 \n",
       "L 343.201803 220.189981 \n",
       "L 343.249394 220.144088 \n",
       "L 343.296984 220.196615 \n",
       "L 344.058434 220.552451 \n",
       "L 344.106025 220.447595 \n",
       "L 344.153615 220.534358 \n",
       "L 344.248797 220.525988 \n",
       "L 344.343978 220.508306 \n",
       "L 344.439159 220.612322 \n",
       "L 344.48675 220.567165 \n",
       "L 344.581931 220.608793 \n",
       "L 344.629522 220.49518 \n",
       "L 344.724703 220.547622 \n",
       "L 344.962656 220.804751 \n",
       "L 345.153018 220.616597 \n",
       "L 345.390971 220.95566 \n",
       "L 345.438562 220.797569 \n",
       "L 345.486153 220.884033 \n",
       "L 345.724106 220.92178 \n",
       "L 345.819287 220.808481 \n",
       "L 345.866878 220.853207 \n",
       "L 346.342784 221.190103 \n",
       "L 346.485556 221.030802 \n",
       "L 346.723509 220.947666 \n",
       "L 346.81869 220.813512 \n",
       "L 346.866281 220.862191 \n",
       "L 346.961462 220.826087 \n",
       "L 347.009053 220.673906 \n",
       "L 347.104234 220.721619 \n",
       "L 347.294596 220.811702 \n",
       "L 347.342187 220.770145 \n",
       "L 347.58014 220.136708 \n",
       "L 347.770502 220.282467 \n",
       "L 347.913274 220.149583 \n",
       "L 348.008455 220.17172 \n",
       "L 348.151227 219.916625 \n",
       "L 348.34159 220.056017 \n",
       "L 348.960268 220.118865 \n",
       "L 349.10304 220.210495 \n",
       "L 349.245812 220.001187 \n",
       "L 349.388583 220.11105 \n",
       "L 349.436174 219.9523 \n",
       "L 349.483765 220.026027 \n",
       "L 349.626537 220.069807 \n",
       "L 349.674127 220.158655 \n",
       "L 349.721718 220.076901 \n",
       "L 349.769308 220.091609 \n",
       "L 349.91208 219.868829 \n",
       "L 350.197624 220.215187 \n",
       "L 350.340396 220.221968 \n",
       "L 350.435577 220.254695 \n",
       "L 350.578349 220.462291 \n",
       "L 350.721121 220.353279 \n",
       "L 350.768711 220.371871 \n",
       "L 350.911483 220.09421 \n",
       "L 351.149436 219.852428 \n",
       "L 351.197027 219.928678 \n",
       "L 351.339799 219.982306 \n",
       "L 351.482571 219.93209 \n",
       "L 351.530161 219.774907 \n",
       "L 351.577752 219.862163 \n",
       "L 351.863296 219.973311 \n",
       "L 352.006067 219.742559 \n",
       "L 352.148839 219.837381 \n",
       "L 352.339202 220.000412 \n",
       "L 352.386792 219.913837 \n",
       "L 352.815108 219.93158 \n",
       "L 352.862699 219.748674 \n",
       "L 352.95788 219.796337 \n",
       "L 353.195833 219.953238 \n",
       "L 353.338605 219.763146 \n",
       "L 353.528967 219.97865 \n",
       "L 353.576558 219.945028 \n",
       "L 353.624148 220.072663 \n",
       "L 353.71933 220.028004 \n",
       "L 353.814511 220.180318 \n",
       "L 353.862102 220.14484 \n",
       "L 353.957283 219.935464 \n",
       "L 354.004873 219.973931 \n",
       "L 354.147645 220.013084 \n",
       "L 354.338008 219.875777 \n",
       "L 354.52837 220.018753 \n",
       "L 354.575961 220.047871 \n",
       "L 354.623551 219.947499 \n",
       "L 355.194639 219.575627 \n",
       "L 355.28982 219.778319 \n",
       "L 355.337411 219.732039 \n",
       "L 355.480183 219.712541 \n",
       "L 355.765726 219.968987 \n",
       "L 355.813317 219.923226 \n",
       "L 355.860908 219.723182 \n",
       "L 355.956089 219.781304 \n",
       "L 356.289223 220.005868 \n",
       "L 356.384404 219.952364 \n",
       "L 356.574767 220.253225 \n",
       "L 356.765129 219.979082 \n",
       "L 357.003082 220.326731 \n",
       "L 357.241035 220.166415 \n",
       "L 357.383807 220.166935 \n",
       "L 357.478989 220.109952 \n",
       "L 357.57417 220.08576 \n",
       "L 357.669351 220.209905 \n",
       "L 357.716942 220.162365 \n",
       "L 357.954895 220.158418 \n",
       "L 358.097667 220.257838 \n",
       "L 358.145257 220.214765 \n",
       "L 358.33562 220.185889 \n",
       "L 358.668754 220.325325 \n",
       "L 358.811526 220.408029 \n",
       "L 359.14466 220.534722 \n",
       "L 359.239841 220.61631 \n",
       "L 359.430204 220.929194 \n",
       "L 359.477795 220.810167 \n",
       "L 359.715748 220.730521 \n",
       "L 359.858519 220.522063 \n",
       "L 360.001291 220.523737 \n",
       "L 360.096473 220.548973 \n",
       "L 360.334426 220.70061 \n",
       "L 360.382016 220.553853 \n",
       "L 360.429607 220.619508 \n",
       "L 360.762741 220.700681 \n",
       "L 360.857922 220.297132 \n",
       "L 360.953104 220.379667 \n",
       "L 361.143466 220.665381 \n",
       "L 361.238647 220.754101 \n",
       "L 361.286238 220.706316 \n",
       "L 361.524191 220.58075 \n",
       "L 361.666963 220.679766 \n",
       "L 361.762144 220.469811 \n",
       "L 361.809735 220.564503 \n",
       "L 361.952507 220.485382 \n",
       "L 362.19046 220.346635 \n",
       "L 362.23805 220.451993 \n",
       "L 362.380822 220.5872 \n",
       "L 362.476003 220.416621 \n",
       "L 362.523594 220.452237 \n",
       "L 362.571185 220.460693 \n",
       "L 362.618775 220.321966 \n",
       "L 362.666366 220.362772 \n",
       "L 362.856728 220.615785 \n",
       "L 362.95191 220.465598 \n",
       "L 362.9995 220.505281 \n",
       "L 363.094682 220.551803 \n",
       "L 363.332635 220.257197 \n",
       "L 363.427816 220.183094 \n",
       "L 363.665769 220.161814 \n",
       "L 363.951313 220.534081 \n",
       "L 363.998903 220.493236 \n",
       "L 364.189266 220.285103 \n",
       "L 364.617581 220.284598 \n",
       "L 364.807944 220.108798 \n",
       "L 364.855534 220.14665 \n",
       "L 364.855534 220.14665 \n",
       "\" clip-path=\"url(#p2a051889ea)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_15\">\n",
       "    <path d=\"M 52.423125 140.186648 \n",
       "L 74.743125 191.291182 \n",
       "L 97.063125 205.517368 \n",
       "L 119.383125 210.874365 \n",
       "L 141.703125 214.105605 \n",
       "L 164.023125 215.925164 \n",
       "L 186.343125 217.41222 \n",
       "L 208.663125 218.329891 \n",
       "L 230.983125 219.116026 \n",
       "L 253.303125 219.699842 \n",
       "L 275.623125 220.358091 \n",
       "L 297.943125 220.798629 \n",
       "L 320.263125 221.172991 \n",
       "L 342.583125 221.425254 \n",
       "L 364.903125 221.683991 \n",
       "\" clip-path=\"url(#p2a051889ea)\" style=\"fill: none; stroke: #ff7f0e; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 30.103125 228.96 \n",
       "L 30.103125 7.2 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 364.903125 228.96 \n",
       "L 364.903125 7.2 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 30.103125 228.96 \n",
       "L 364.903125 228.96 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 30.103125 7.2 \n",
       "L 364.903125 7.2 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"legend_1\">\n",
       "    <g id=\"patch_7\">\n",
       "     <path d=\"M 301.951563 44.55625 \n",
       "L 357.903125 44.55625 \n",
       "Q 359.903125 44.55625 359.903125 42.55625 \n",
       "L 359.903125 14.2 \n",
       "Q 359.903125 12.2 357.903125 12.2 \n",
       "L 301.951563 12.2 \n",
       "Q 299.951563 12.2 299.951563 14.2 \n",
       "L 299.951563 42.55625 \n",
       "Q 299.951563 44.55625 301.951563 44.55625 \n",
       "z\n",
       "\" style=\"fill: #ffffff; opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter\"/>\n",
       "    </g>\n",
       "    <g id=\"line2d_16\">\n",
       "     <path d=\"M 303.951563 20.298437 \n",
       "L 313.951563 20.298437 \n",
       "L 323.951563 20.298437 \n",
       "\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "    </g>\n",
       "    <g id=\"text_14\">\n",
       "     <!-- train -->\n",
       "     <g transform=\"translate(331.951563 23.798437) scale(0.1 -0.1)\">\n",
       "      <defs>\n",
       "       <path id=\"DejaVuSans-74\" d=\"M 1172 4494 \n",
       "L 1172 3500 \n",
       "L 2356 3500 \n",
       "L 2356 3053 \n",
       "L 1172 3053 \n",
       "L 1172 1153 \n",
       "Q 1172 725 1289 603 \n",
       "Q 1406 481 1766 481 \n",
       "L 2356 481 \n",
       "L 2356 0 \n",
       "L 1766 0 \n",
       "Q 1100 0 847 248 \n",
       "Q 594 497 594 1153 \n",
       "L 594 3053 \n",
       "L 172 3053 \n",
       "L 172 3500 \n",
       "L 594 3500 \n",
       "L 594 4494 \n",
       "L 1172 4494 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-72\" d=\"M 2631 2963 \n",
       "Q 2534 3019 2420 3045 \n",
       "Q 2306 3072 2169 3072 \n",
       "Q 1681 3072 1420 2755 \n",
       "Q 1159 2438 1159 1844 \n",
       "L 1159 0 \n",
       "L 581 0 \n",
       "L 581 3500 \n",
       "L 1159 3500 \n",
       "L 1159 2956 \n",
       "Q 1341 3275 1631 3429 \n",
       "Q 1922 3584 2338 3584 \n",
       "Q 2397 3584 2469 3576 \n",
       "Q 2541 3569 2628 3553 \n",
       "L 2631 2963 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-61\" d=\"M 2194 1759 \n",
       "Q 1497 1759 1228 1600 \n",
       "Q 959 1441 959 1056 \n",
       "Q 959 750 1161 570 \n",
       "Q 1363 391 1709 391 \n",
       "Q 2188 391 2477 730 \n",
       "Q 2766 1069 2766 1631 \n",
       "L 2766 1759 \n",
       "L 2194 1759 \n",
       "z\n",
       "M 3341 1997 \n",
       "L 3341 0 \n",
       "L 2766 0 \n",
       "L 2766 531 \n",
       "Q 2569 213 2275 61 \n",
       "Q 1981 -91 1556 -91 \n",
       "Q 1019 -91 701 211 \n",
       "Q 384 513 384 1019 \n",
       "Q 384 1609 779 1909 \n",
       "Q 1175 2209 1959 2209 \n",
       "L 2766 2209 \n",
       "L 2766 2266 \n",
       "Q 2766 2663 2505 2880 \n",
       "Q 2244 3097 1772 3097 \n",
       "Q 1472 3097 1187 3025 \n",
       "Q 903 2953 641 2809 \n",
       "L 641 3341 \n",
       "Q 956 3463 1253 3523 \n",
       "Q 1550 3584 1831 3584 \n",
       "Q 2591 3584 2966 3190 \n",
       "Q 3341 2797 3341 1997 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-69\" d=\"M 603 3500 \n",
       "L 1178 3500 \n",
       "L 1178 0 \n",
       "L 603 0 \n",
       "L 603 3500 \n",
       "z\n",
       "M 603 4863 \n",
       "L 1178 4863 \n",
       "L 1178 4134 \n",
       "L 603 4134 \n",
       "L 603 4863 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-6e\" d=\"M 3513 2113 \n",
       "L 3513 0 \n",
       "L 2938 0 \n",
       "L 2938 2094 \n",
       "Q 2938 2591 2744 2837 \n",
       "Q 2550 3084 2163 3084 \n",
       "Q 1697 3084 1428 2787 \n",
       "Q 1159 2491 1159 1978 \n",
       "L 1159 0 \n",
       "L 581 0 \n",
       "L 581 3500 \n",
       "L 1159 3500 \n",
       "L 1159 2956 \n",
       "Q 1366 3272 1645 3428 \n",
       "Q 1925 3584 2291 3584 \n",
       "Q 2894 3584 3203 3211 \n",
       "Q 3513 2838 3513 2113 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      </defs>\n",
       "      <use xlink:href=\"#DejaVuSans-74\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-72\" x=\"39.208984\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-61\" x=\"80.322266\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-69\" x=\"141.601562\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-6e\" x=\"169.384766\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"line2d_17\">\n",
       "     <path d=\"M 303.951563 34.976562 \n",
       "L 313.951563 34.976562 \n",
       "L 323.951563 34.976562 \n",
       "\" style=\"fill: none; stroke: #ff7f0e; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "    </g>\n",
       "    <g id=\"text_15\">\n",
       "     <!-- valid -->\n",
       "     <g transform=\"translate(331.951563 38.476562) scale(0.1 -0.1)\">\n",
       "      <defs>\n",
       "       <path id=\"DejaVuSans-76\" d=\"M 191 3500 \n",
       "L 800 3500 \n",
       "L 1894 563 \n",
       "L 2988 3500 \n",
       "L 3597 3500 \n",
       "L 2284 0 \n",
       "L 1503 0 \n",
       "L 191 3500 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-6c\" d=\"M 603 4863 \n",
       "L 1178 4863 \n",
       "L 1178 0 \n",
       "L 603 0 \n",
       "L 603 4863 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-64\" d=\"M 2906 2969 \n",
       "L 2906 4863 \n",
       "L 3481 4863 \n",
       "L 3481 0 \n",
       "L 2906 0 \n",
       "L 2906 525 \n",
       "Q 2725 213 2448 61 \n",
       "Q 2172 -91 1784 -91 \n",
       "Q 1150 -91 751 415 \n",
       "Q 353 922 353 1747 \n",
       "Q 353 2572 751 3078 \n",
       "Q 1150 3584 1784 3584 \n",
       "Q 2172 3584 2448 3432 \n",
       "Q 2725 3281 2906 2969 \n",
       "z\n",
       "M 947 1747 \n",
       "Q 947 1113 1208 752 \n",
       "Q 1469 391 1925 391 \n",
       "Q 2381 391 2643 752 \n",
       "Q 2906 1113 2906 1747 \n",
       "Q 2906 2381 2643 2742 \n",
       "Q 2381 3103 1925 3103 \n",
       "Q 1469 3103 1208 2742 \n",
       "Q 947 2381 947 1747 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      </defs>\n",
       "      <use xlink:href=\"#DejaVuSans-76\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-61\" x=\"59.179688\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-6c\" x=\"120.458984\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-69\" x=\"148.242188\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-64\" x=\"176.025391\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p2a051889ea\">\n",
       "   <rect x=\"30.103125\" y=\"7.2\" width=\"334.8\" height=\"221.76\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 600x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 1 with valid_loss value: 0.3928217887878418.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 2 with valid_loss value: 0.24446682631969452.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 3 with valid_loss value: 0.18860244750976562.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 4 with valid_loss value: 0.15490610897541046.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 5 with valid_loss value: 0.13593119382858276.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 6 with valid_loss value: 0.12042373418807983.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 7 with valid_loss value: 0.11085397750139236.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 8 with valid_loss value: 0.10265593230724335.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 9 with valid_loss value: 0.09656772017478943.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 10 with valid_loss value: 0.08970329910516739.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 11 with valid_loss value: 0.08510923385620117.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 12 with valid_loss value: 0.08120527863502502.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 13 with valid_loss value: 0.07857459783554077.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 14 with valid_loss value: 0.07587641477584839.\n"
     ]
    }
   ],
   "source": [
    "from fastai.callback.all import EarlyStoppingCallback, SaveModelCallback, ShowGraphCallback \n",
    "\n",
    "early_stopping = EarlyStoppingCallback(monitor='valid_loss', comp=np.less, min_delta=0.0,\n",
    "                        patience=3, reset_on_fit=True)\n",
    "\n",
    "save_model = SaveModelCallback (monitor='valid_loss', comp=np.less, min_delta=0.0,\n",
    "                    fname='model', every_epoch=False, at_end=False,\n",
    "                    with_opt=False, reset_on_fit=True)\n",
    "\n",
    "learner.add_cbs([ShowGraphCallback(),early_stopping, save_model])\n",
    "\n",
    "learner.fit(n_epoch = 15, lr = 1e-4) \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ca53649d-bc17-46a9-8027-45ae6375f78f",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "36bcdad3",
   "metadata": {},
   "source": [
    "### 4, evaluate the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "a179179f-65ff-434e-b317-17ca56355e7e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 0 with valid_loss value: 0.9786333441734314.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(#2) [0.0697634220123291,0.9786333441734314]"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#训练集\n",
    "learner.validate(dl = dl_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "62f8cf7b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n",
      "[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Better model found at epoch 0 with valid_loss value: 0.9769999980926514.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(#2) [0.07587641477584839,0.9769999980926514]"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#验证集指标\n",
    "learner.validate(dl = dl_val)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0405a48f-000b-40aa-8869-409d571f512e",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "96911b58",
   "metadata": {},
   "source": [
    "### 5, use the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "91b21a4e-be1c-4fba-ae99-7fe4962c67b6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "y_pred =  0\n",
      "y_prob =  0.9997939467430115\n"
     ]
    },
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"300.237pt\" height=\"297.190125pt\" viewBox=\"0 0 300.237 297.190125\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2023-03-04T16:21:51.097072</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.6.2, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M -0 297.190125 \n",
       "L 300.237 297.190125 \n",
       "L 300.237 0 \n",
       "L -0 0 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 26.925 273.312 \n",
       "L 293.037 273.312 \n",
       "L 293.037 7.2 \n",
       "L 26.925 7.2 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#pf6e2b46973)\">\n",
       "    <image xlink:href=\"data:image/png;base64,\n",
       "iVBORw0KGgoAAAANSUhEUgAAAXIAAAFyCAYAAADoJFEJAAAKIUlEQVR4nO3cX6jfdR3H8c/ZzjbPpEwnska4NdvRVZDHP+GIUnQtRcmooQ1yuYyETTELpRtFIsSopqbTME2mmEJlEVEznbL+uLE5rdbmnDo0DbN/YsnZ5tn5na66q4v397hzfM3H4/7F58vh8Px9rj59i/uWjjUAYk2Z7A8AYHyEHCCckAOEE3KAcEIOEE7IAcIJOUA4IQcIJ+QA4YQcIJyQA4QTcoBwQg4QTsgBwgk5QDghBwgn5ADhhBwgnJADhBNygHBCDhBOyAHCCTlAOCEHCCfkAOGEHCCckAOEE3KAcEIOEE7IAcIJOUA4IQcIJ+QA4YQcIJyQA4QTcoBwQg4QTsgBwgk5QDghBwgn5ADhhBwgnJADhBNygHBCDhBOyAHCCTlAOCEHCCfkAOGEHCCckAOEE3KAcP2T/QFvNf3z53Xa7bx0dnmz47ybypspHX7be61X3rTW2nE/X1neHHvLcHkz9sT28gaSuJEDhBNygHBCDhBOyAHCCTlAOCEHCCfkAOGEHCCckAOEE3KAcEIOEE7IAcL1Le5bOjbZH5Fq6uAx5c3gvc93Ouvrszd22lVN5KNZXTyxr/59yzZ8obwZXLG1vIHJ4kYOEE7IAcIJOUA4IQcIJ+QA4YQcIJyQA4QTcoBwQg4QTsgBwgk5QDghBwjXP9kfkOzl044qb348+74D8CVvnF/tnV7ePL1vdqezVhz2XHkzNKP+QNfOJd8pby7f8uHyZt2jx5c3rbW24LJNnXbwX27kAOGEHCCckAOEE3KAcEIOEE7IAcIJOUA4IQcIJ+QA4YQcIJyQA4QTcoBwQg4QzuuHIfaO7S9vhh66pLw55s7664LT/vLv8qa11r576sfLmyPOf7G8ufTo9eXNjXN+W9789Kwd5U1rrV07/8zy5u1rDitvpq/bUt6QwY0cIJyQA4QTcoBwQg4QTsgBwgk5QDghBwgn5ADhhBwgnJADhBNygHBCDhDOo1nj0VefTOn427lhz6zyZsGFWzudVTXacXfkU8/UR7fVJ2vaYHlz5VcXlTc/Wr66vGmttU0n3FvenHDxBeXNnHXlCSHcyAHCCTlAOCEHCCfkAOGEHCCckAOEE3KAcEIOEE7IAcIJOUA4IQcIJ+QA4TyaNR5j9Umv9TodddlvlpU3g21iHs06GM29emN588X1Kzud9fcv7SlvHvvg2vLmjHXnlzeHnrm7vGHiuZEDhBNygHBCDhBOyAHCCTlAOCEHCCfkAOGEHCCckAOEE3KAcEIOEE7IAcJ5NCvENz/0g/Lmtjb/AHwJ/8+UDU902s3eMrO8WXjdJeXNk5+6ubx54OnDypvrrlpe3rTW2tvu29Rphxs5QDwhBwgn5ADhhBwgnJADhBNygHBCDhBOyAHCCTlAOCEHCCfkAOGEHCCcR7NCzJr6WnnTP39eebN/93PlDePTGx4ub479yrby5rj+VeXNrnNvLW/uWvVMedNaa8MPHF7ejL7ySqezDjZu5ADhhBwgnJADhBNygHBCDhBOyAHCCTlAOCEHCCfkAOGEHCCckAOEE3KAcEIOEM7rh+PQv6e+ebX3eqezFh1S3+xePqe8Ofqa5+oHMeG6vJg4uHJz/aBz65N75v+iPmqtLbzx4vJmwXKvH7bmRg4QT8gBwgk5QDghBwgn5ADhhBwgnJADhBNygHBCDhBOyAHCCTlAOCEHCOfRrHF4x90by5uvXXZap7O+9c5N5c2JS3aUN3+7pjzhIDatb2p5MzLW7awzF9b/X5/tdtRBx40cIJyQA4QTcoBwQg4QTsgBwgk5QDghBwgn5ADhhBwgnJADhBNygHBCDhDOo1kT7A9XHd9p17v90fLmjrkPljcf/cSq8mbgJ5vLGzKMjI2WN73W63TW6Fhfpx1u5ADxhBwgnJADhBNygHBCDhBOyAHCCTlAOCEHCCfkAOGEHCCckAOEE3KAcB7NmmADG7Z32p2z85Plzc+Ou7+8uf3G68ubCw/5cnnTWmuH//pP5c3YoQPlzeiuZ8sbSOJGDhBOyAHCCTlAOCEHCCfkAOGEHCCckAOEE3KAcEIOEE7IAcIJOUA4IQcI59GsCdYbHu60m3rlu8ubU66+oLzZfNI95c3qa9eUN6219vBr7y1v7r/p9PJmlkezImx+aW55c1TbeQC+JI8bOUA4IQcIJ+QA4YQcIJyQA4QTcoBwQg4QTsgBwgk5QDghBwgn5ADhhBwgnJADhPP6YYixrdvLmyNXD5U3u9a+Xt4Mzej2bzQ044/lzYZPLyhvpv7w8PLmn2cfW9784/195U1rrQ2ueaG82f/Ci53Omggvj+7rtJt1w8w3+EveOtzIAcIJOUA4IQcIJ+QA4YQcIJyQA4QTcoBwQg4QTsgBwgk5QDghBwgn5ADh+hb3LR2b7I/gzWP/6SeWN9/+3s2dzhqcNr3TrmrF82eUN489tLC82XZRt7/DI3sOKW++seIz5c2rx9TP2XztreXNyY+fV9601toR5+zqtMONHCCekAOEE3KAcEIOEE7IAcIJOUA4IQcIJ+QA4YQcIJyQA4QTcoBwQg4Qrn+yP4A3l/6Ht5Y3y373uU5nbTn5rk67qjvmPljeTLlofXnTa73yprXWTh0YLm+uOGmgvHnf0ifLm5Gx0fKm5xm+CedGDhBOyAHCCTlAOCEHCCfkAOGEHCCckAOEE3KAcEIOEE7IAcIJOUA4IQcI59Esxu1dy//cabfkI6vKm8uv/355c9bMV8qbiXT1X08ub6a9Vn+Z6s55vyxvutz1/rVjVodzWjuy04rW3MgB4gk5QDghBwgn5ADhhBwgnJADhBNygHBCDhBOyAHCCTlAOCEHCCfkAOGEHCBc3+K+pfVn1GCSjCw5qby58pa7y5szBobLm17rlTettbZ7ZKS8ebU3o7wZmlH/vo99fmV5M/DItvKmtdZ6e/d22uFGDhBPyAHCCTlAOCEHCCfkAOGEHCCckAOEE3KAcEIOEE7IAcIJOUA4IQcI59EsDnq9U4fKmxvW3lLevGdaf3kzkZ4aGS1vrph3ygH4Et5obuQA4YQcIJyQA4QTcoBwQg4QTsgBwgk5QDghBwgn5ADhhBwgnJADhBNygHAezYL/Yf/pJ5Y3L63c1+ms3y9aW958YONny5s5a6aXN1Mfeby8YeK5kQOEE3KAcEIOEE7IAcIJOUA4IQcIJ+QA4YQcIJyQA4QTcoBwQg4QTsgBwnk0CyCcGzlAOCEHCCfkAOGEHCCckAOEE3KAcEIOEE7IAcIJOUA4IQcIJ+QA4YQcIJyQA4QTcoBwQg4QTsgBwgk5QDghBwgn5ADhhBwgnJADhBNygHBCDhBOyAHCCTlAOCEHCCfkAOGEHCCckAOEE3KAcEIOEE7IAcIJOUA4IQcIJ+QA4YQcIJyQA4QTcoBwQg4QTsgBwgk5QDghBwgn5ADhhBwgnJADhBNygHBCDhBOyAHCCTlAOCEHCCfkAOGEHCDcfwAzdChCxkRuvAAAAABJRU5ErkJggg==\" id=\"image0f17a05fb6\" transform=\"scale(1 -1) translate(0 -266.4)\" x=\"26.925\" y=\"-6.912\" width=\"266.4\" height=\"266.4\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_1\">\n",
       "    <g id=\"xtick_1\">\n",
       "     <g id=\"line2d_1\">\n",
       "      <defs>\n",
       "       <path id=\"ma6ddb8fed2\" d=\"M 0 0 \n",
       "L 0 3.5 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma6ddb8fed2\" x=\"31.677\" y=\"273.312\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_1\">\n",
       "      <!-- 0 -->\n",
       "      <g transform=\"translate(28.49575 287.910437) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-30\" d=\"M 2034 4250 \n",
       "Q 1547 4250 1301 3770 \n",
       "Q 1056 3291 1056 2328 \n",
       "Q 1056 1369 1301 889 \n",
       "Q 1547 409 2034 409 \n",
       "Q 2525 409 2770 889 \n",
       "Q 3016 1369 3016 2328 \n",
       "Q 3016 3291 2770 3770 \n",
       "Q 2525 4250 2034 4250 \n",
       "z\n",
       "M 2034 4750 \n",
       "Q 2819 4750 3233 4129 \n",
       "Q 3647 3509 3647 2328 \n",
       "Q 3647 1150 3233 529 \n",
       "Q 2819 -91 2034 -91 \n",
       "Q 1250 -91 836 529 \n",
       "Q 422 1150 422 2328 \n",
       "Q 422 3509 836 4129 \n",
       "Q 1250 4750 2034 4750 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_2\">\n",
       "     <g id=\"line2d_2\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma6ddb8fed2\" x=\"79.197\" y=\"273.312\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_2\">\n",
       "      <!-- 5 -->\n",
       "      <g transform=\"translate(76.01575 287.910437) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-35\" d=\"M 691 4666 \n",
       "L 3169 4666 \n",
       "L 3169 4134 \n",
       "L 1269 4134 \n",
       "L 1269 2991 \n",
       "Q 1406 3038 1543 3061 \n",
       "Q 1681 3084 1819 3084 \n",
       "Q 2600 3084 3056 2656 \n",
       "Q 3513 2228 3513 1497 \n",
       "Q 3513 744 3044 326 \n",
       "Q 2575 -91 1722 -91 \n",
       "Q 1428 -91 1123 -41 \n",
       "Q 819 9 494 109 \n",
       "L 494 744 \n",
       "Q 775 591 1075 516 \n",
       "Q 1375 441 1709 441 \n",
       "Q 2250 441 2565 725 \n",
       "Q 2881 1009 2881 1497 \n",
       "Q 2881 1984 2565 2268 \n",
       "Q 2250 2553 1709 2553 \n",
       "Q 1456 2553 1204 2497 \n",
       "Q 953 2441 691 2322 \n",
       "L 691 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-35\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_3\">\n",
       "     <g id=\"line2d_3\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma6ddb8fed2\" x=\"126.717\" y=\"273.312\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_3\">\n",
       "      <!-- 10 -->\n",
       "      <g transform=\"translate(120.3545 287.910437) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-31\" d=\"M 794 531 \n",
       "L 1825 531 \n",
       "L 1825 4091 \n",
       "L 703 3866 \n",
       "L 703 4441 \n",
       "L 1819 4666 \n",
       "L 2450 4666 \n",
       "L 2450 531 \n",
       "L 3481 531 \n",
       "L 3481 0 \n",
       "L 794 0 \n",
       "L 794 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_4\">\n",
       "     <g id=\"line2d_4\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma6ddb8fed2\" x=\"174.237\" y=\"273.312\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_4\">\n",
       "      <!-- 15 -->\n",
       "      <g transform=\"translate(167.8745 287.910437) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"63.623047\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_5\">\n",
       "     <g id=\"line2d_5\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma6ddb8fed2\" x=\"221.757\" y=\"273.312\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_5\">\n",
       "      <!-- 20 -->\n",
       "      <g transform=\"translate(215.3945 287.910437) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-32\" d=\"M 1228 531 \n",
       "L 3431 531 \n",
       "L 3431 0 \n",
       "L 469 0 \n",
       "L 469 531 \n",
       "Q 828 903 1448 1529 \n",
       "Q 2069 2156 2228 2338 \n",
       "Q 2531 2678 2651 2914 \n",
       "Q 2772 3150 2772 3378 \n",
       "Q 2772 3750 2511 3984 \n",
       "Q 2250 4219 1831 4219 \n",
       "Q 1534 4219 1204 4116 \n",
       "Q 875 4013 500 3803 \n",
       "L 500 4441 \n",
       "Q 881 4594 1212 4672 \n",
       "Q 1544 4750 1819 4750 \n",
       "Q 2544 4750 2975 4387 \n",
       "Q 3406 4025 3406 3419 \n",
       "Q 3406 3131 3298 2873 \n",
       "Q 3191 2616 2906 2266 \n",
       "Q 2828 2175 2409 1742 \n",
       "Q 1991 1309 1228 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_6\">\n",
       "     <g id=\"line2d_6\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma6ddb8fed2\" x=\"269.277\" y=\"273.312\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_6\">\n",
       "      <!-- 25 -->\n",
       "      <g transform=\"translate(262.9145 287.910437) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"63.623047\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_2\">\n",
       "    <g id=\"ytick_1\">\n",
       "     <g id=\"line2d_7\">\n",
       "      <defs>\n",
       "       <path id=\"mb63a96fb1b\" d=\"M 0 0 \n",
       "L -3.5 0 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#mb63a96fb1b\" x=\"26.925\" y=\"11.952\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_7\">\n",
       "      <!-- 0 -->\n",
       "      <g transform=\"translate(13.5625 15.751219) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_2\">\n",
       "     <g id=\"line2d_8\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mb63a96fb1b\" x=\"26.925\" y=\"59.472\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_8\">\n",
       "      <!-- 5 -->\n",
       "      <g transform=\"translate(13.5625 63.271219) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-35\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_3\">\n",
       "     <g id=\"line2d_9\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mb63a96fb1b\" x=\"26.925\" y=\"106.992\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_9\">\n",
       "      <!-- 10 -->\n",
       "      <g transform=\"translate(7.2 110.791219) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_4\">\n",
       "     <g id=\"line2d_10\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mb63a96fb1b\" x=\"26.925\" y=\"154.512\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_10\">\n",
       "      <!-- 15 -->\n",
       "      <g transform=\"translate(7.2 158.311219) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"63.623047\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_5\">\n",
       "     <g id=\"line2d_11\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mb63a96fb1b\" x=\"26.925\" y=\"202.032\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_11\">\n",
       "      <!-- 20 -->\n",
       "      <g transform=\"translate(7.2 205.831219) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_6\">\n",
       "     <g id=\"line2d_12\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mb63a96fb1b\" x=\"26.925\" y=\"249.552\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_12\">\n",
       "      <!-- 25 -->\n",
       "      <g transform=\"translate(7.2 253.351219) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"63.623047\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 26.925 273.312 \n",
       "L 26.925 7.2 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 293.037 273.312 \n",
       "L 293.037 7.2 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 26.925 273.312 \n",
       "L 293.037 273.312 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 26.925 7.2 \n",
       "L 293.037 7.2 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"pf6e2b46973\">\n",
       "   <rect x=\"26.925\" y=\"7.2\" width=\"266.112\" height=\"266.112\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "learner.eval();\n",
    "device = torch.device('cpu') #torch.device('mps')\n",
    "\n",
    "img,label = ds_train[1]\n",
    "tensor = img.to(device)\n",
    "\n",
    "net.to(device)\n",
    "\n",
    "y_pred = torch.argmax(net(tensor[None,...])) \n",
    "y_prob = torch.softmax(net(tensor[None,...]),dim=-1).max() \n",
    "\n",
    "img = img.permute(1,2,0)\n",
    "plt.imshow(img)\n",
    "print('y_pred = ', y_pred.item())\n",
    "print('y_prob = ', y_prob.item())\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "81da8622",
   "metadata": {},
   "source": [
    "### 6, save the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "4f6301ef-fd6c-4772-98bb-e8bdde34153a",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "torch.save(learner.model.state_dict(),'checkpoint.pt')\n",
    "\n",
    "net_clone = create_net() \n",
    "net_clone.load_state_dict(torch.load('checkpoint.pt'))\n",
    "\n"
   ]
  }
 ],
 "metadata": {
  "jupytext": {
   "cell_metadata_filter": "-all",
   "main_language": "python",
   "notebook_metadata_filter": "-all"
  },
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
